From 671f303b5355d2da239d20cfad6032ef74084301 Mon Sep 17 00:00:00 2001 From: Vinoth Kannan Date: Tue, 5 Nov 2019 18:15:55 +0530 Subject: [PATCH] FEATURE: Add welcome message for admins. (#8293) --- .../admin/email_templates_controller.rb | 1 + app/models/concerns/roleable.rb | 3 ++- app/models/user.rb | 14 +++++++++++--- config/locales/server.en.yml | 10 +++++----- spec/components/admin_confirmation_spec.rb | 1 + spec/requests/admin/users_controller_spec.rb | 1 + 6 files changed, 21 insertions(+), 9 deletions(-) diff --git a/app/controllers/admin/email_templates_controller.rb b/app/controllers/admin/email_templates_controller.rb index 9a3f8ea78e7..d1b06c830ea 100644 --- a/app/controllers/admin/email_templates_controller.rb +++ b/app/controllers/admin/email_templates_controller.rb @@ -43,6 +43,7 @@ class Admin::EmailTemplatesController < Admin::AdminController "system_messages.user_automatically_silenced", "system_messages.welcome_invite", "system_messages.welcome_user", + "system_messages.welcome_staff", "test_mailer", "user_notifications.account_created", "user_notifications.admin_login", diff --git a/app/models/concerns/roleable.rb b/app/models/concerns/roleable.rb index 07062692400..b1f15d4996d 100644 --- a/app/models/concerns/roleable.rb +++ b/app/models/concerns/roleable.rb @@ -20,7 +20,7 @@ module Roleable def grant_moderation! set_permission('moderator', true) - enqueue_welcome_moderator_message + enqueue_staff_welcome_message(:moderator) end def revoke_moderation! @@ -29,6 +29,7 @@ module Roleable def grant_admin! set_permission('admin', true) + enqueue_staff_welcome_message(:admin) end def revoke_admin! diff --git a/app/models/user.rb b/app/models/user.rb index aa5ac937a02..adaf9ee9bbd 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -416,9 +416,17 @@ class User < ActiveRecord::Base Jobs.enqueue(:send_system_message, user_id: id, message_type: "welcome_tl1_user") end - def enqueue_welcome_moderator_message - return unless moderator - Jobs.enqueue(:send_system_message, user_id: id, message_type: 'welcome_moderator') + def enqueue_staff_welcome_message(role) + return unless staff? + + Jobs.enqueue( + :send_system_message, + user_id: id, + message_type: 'welcome_staff', + message_options: { + role: role + } + ) end def change_username(new_username, actor = nil) diff --git a/config/locales/server.en.yml b/config/locales/server.en.yml index bdebcbbdd54..b1619c47d4e 100644 --- a/config/locales/server.en.yml +++ b/config/locales/server.en.yml @@ -2677,13 +2677,13 @@ en: We’re really glad you’re spending time with us and we’d love to know more about you. Take a moment to [fill out your profile](%{base_url}/my/preferences/profile), or feel free to [start a new topic](%{base_url}/categories). - welcome_moderator: - title: "Welcome Moderator" - subject_template: "Congratulations, you’re now a moderator!" + welcome_staff: + title: "Welcome Staff" + subject_template: "Congratulations, you’re now a %{role}!" text_body_template: | - You’ve been granted moderator status by a fellow staff member. + You’ve been granted %{role} status by a fellow staff member. - As a moderator, you now have access to the admin interface. + As a %{role}, you now have access to the admin interface. With great power comes great responsibility. If you’re new to moderating, please refer to the [Moderation Guide](https://meta.discourse.org/t/discourse-moderation-guide/63116). welcome_invite: diff --git a/spec/components/admin_confirmation_spec.rb b/spec/components/admin_confirmation_spec.rb index 1c09b8f2362..749c566090d 100644 --- a/spec/components/admin_confirmation_spec.rb +++ b/spec/components/admin_confirmation_spec.rb @@ -33,6 +33,7 @@ describe AdminConfirmation do expect(ac.performed_by).to eq(admin) expect(ac.target_user).to eq(user) expect(ac.token).to eq(@token) + Jobs.expects(:enqueue).with(:send_system_message, user_id: user.id, message_type: 'welcome_staff', message_options: { role: :admin }) ac.email_confirmed! user.reload diff --git a/spec/requests/admin/users_controller_spec.rb b/spec/requests/admin/users_controller_spec.rb index 9a3d280b48c..e6bf9831d20 100644 --- a/spec/requests/admin/users_controller_spec.rb +++ b/spec/requests/admin/users_controller_spec.rb @@ -426,6 +426,7 @@ RSpec.describe Admin::UsersController do end it 'updates the moderator flag' do + Jobs.expects(:enqueue).with(:send_system_message, user_id: another_user.id, message_type: 'welcome_staff', message_options: { role: :moderator }) put "/admin/users/#{another_user.id}/grant_moderation.json" expect(response.status).to eq(200) another_user.reload