diff --git a/app/helpers/users_helper.rb b/app/helpers/users_helper.rb index fb0f739934e9831de5926c24d9ef2c80af876819..271fa47dd97a1aed9655bbf6cf73e88224de81d7 100644 --- a/app/helpers/users_helper.rb +++ b/app/helpers/users_helper.rb @@ -94,6 +94,7 @@ def user_badges_in_admin_section(user) [].tap do |badges| badges << blocked_user_badge(user) if user.blocked? badges << { text: s_('AdminUsers|Admin'), variant: 'success' } if user.admin? + badges << { text: s_('AdminUsers|Bot'), variant: 'muted' } if user.bot? badges << { text: s_('AdminUsers|External'), variant: 'secondary' } if user.external? badges << { text: s_("AdminUsers|It's you!"), variant: 'muted' } if current_user == user badges << { text: s_("AdminUsers|Locked"), variant: 'warning' } if user.access_locked? diff --git a/doc/development/internal_users.md b/doc/development/internal_users.md index 95ca593e31e4ad05794d7731dbeacdfa9870f0e1..24785c0cf48589cec87b7fa5a9c4ac57932fd266 100644 --- a/doc/development/internal_users.md +++ b/doc/development/internal_users.md @@ -8,6 +8,8 @@ info: "See the Technical Writers assigned to Development Guidelines: https://abo # Internal users +> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/97584) in GitLab 15.4, bots are indicated with a badge in user listings. + GitLab uses internal users (sometimes referred to as "bots") to perform actions or functions that cannot be attributed to a regular user. diff --git a/locale/gitlab.pot b/locale/gitlab.pot index 732436619690b9a6855b4c84418692a3cec963cc..e0a62b6082110ffc86d784dc3287fd2cd39250bd 100644 --- a/locale/gitlab.pot +++ b/locale/gitlab.pot @@ -3084,6 +3084,9 @@ msgstr "" msgid "AdminUsers|Blocking user has the following effects:" msgstr "" +msgid "AdminUsers|Bot" +msgstr "" + msgid "AdminUsers|Can create group" msgstr "" diff --git a/spec/helpers/users_helper_spec.rb b/spec/helpers/users_helper_spec.rb index 91e6305ea99b32cbb9fd5ecb6422cf8f7e06afe7..617a796781e58bebec1b242c80edb7308bdd4e75 100644 --- a/spec/helpers/users_helper_spec.rb +++ b/spec/helpers/users_helper_spec.rb @@ -136,7 +136,7 @@ def filter_ee_badges(badges) badges = helper.user_badges_in_admin_section(blocked_user) - expect(filter_ee_badges(badges)).to match_array([text: "Blocked", variant: "danger"]) + expect(filter_ee_badges(badges)).to match_array([text: s_("AdminUsers|Blocked"), variant: "danger"]) end end @@ -146,7 +146,7 @@ def filter_ee_badges(badges) badges = helper.user_badges_in_admin_section(blocked_pending_approval_user) - expect(filter_ee_badges(badges)).to match_array([text: 'Pending approval', variant: 'info']) + expect(filter_ee_badges(badges)).to match_array([text: s_('AdminUsers|Pending approval'), variant: 'info']) end end @@ -156,7 +156,7 @@ def filter_ee_badges(badges) badges = helper.user_badges_in_admin_section(banned_user) - expect(filter_ee_badges(badges)).to match_array([text: 'Banned', variant: 'danger']) + expect(filter_ee_badges(badges)).to match_array([text: s_('AdminUsers|Banned'), variant: 'danger']) end end @@ -166,7 +166,17 @@ def filter_ee_badges(badges) badges = helper.user_badges_in_admin_section(admin_user) - expect(filter_ee_badges(badges)).to match_array([text: "Admin", variant: "success"]) + expect(filter_ee_badges(badges)).to match_array([text: s_("AdminUsers|Admin"), variant: "success"]) + end + end + + context 'with a bot' do + it "returns the bot badge" do + bot = create(:user, :bot) + + badges = helper.user_badges_in_admin_section(bot) + + expect(filter_ee_badges(badges)).to match_array([text: s_('AdminUsers|Bot'), variant: "muted"]) end end @@ -176,7 +186,7 @@ def filter_ee_badges(badges) badges = helper.user_badges_in_admin_section(external_user) - expect(filter_ee_badges(badges)).to match_array([text: "External", variant: "secondary"]) + expect(filter_ee_badges(badges)).to match_array([text: s_("AdminUsers|External"), variant: "secondary"]) end end @@ -184,7 +194,7 @@ def filter_ee_badges(badges) it 'returns the "It\'s You" badge' do badges = helper.user_badges_in_admin_section(user) - expect(filter_ee_badges(badges)).to match_array([text: "It's you!", variant: "muted"]) + expect(filter_ee_badges(badges)).to match_array([text: s_("AdminUsers|It's you!"), variant: "muted"]) end end @@ -195,9 +205,9 @@ def filter_ee_badges(badges) badges = helper.user_badges_in_admin_section(user) expect(badges).to match_array([ - { text: "Blocked", variant: "danger" }, - { text: "Admin", variant: "success" }, - { text: "External", variant: "secondary" } + { text: s_("AdminUsers|Blocked"), variant: "danger" }, + { text: s_("AdminUsers|Admin"), variant: "success" }, + { text: s_("AdminUsers|External"), variant: "secondary" } ]) end end @@ -208,7 +218,7 @@ def filter_ee_badges(badges) badges = helper.user_badges_in_admin_section(locked_user) - expect(filter_ee_badges(badges)).to match_array([text: "Locked", variant: "warning"]) + expect(filter_ee_badges(badges)).to match_array([text: s_("AdminUsers|Locked"), variant: "warning"]) end end