diff --git a/app/controllers/collections_controller.rb b/app/controllers/collections_controller.rb index 5a9afb47d..9a3371798 100644 --- a/app/controllers/collections_controller.rb +++ b/app/controllers/collections_controller.rb @@ -115,8 +115,7 @@ def leave def share_message user = User.find_by(email: params[:user]) - text = t('collections.share_message.text', user: current_user.name, collection: @collection.title, locale: :en) - Message.new(sender: current_user, recipient: user, param_type: 'collection', param_id: @collection.id, text:) + Message.new(sender: current_user, recipient: user, param_type: 'collection', param_id: @collection.id) end def push_exercises diff --git a/app/controllers/groups_controller.rb b/app/controllers/groups_controller.rb index 9921d7396..d91d2040e 100644 --- a/app/controllers/groups_controller.rb +++ b/app/controllers/groups_controller.rb @@ -61,7 +61,7 @@ def leave def request_access flash[:notice] = t('.success_notice') @group.admins.each do |admin| - send_access_request_message(admin, @group) + send_message(admin, :group_requested) AccessRequestMailer.send_access_request(current_user, admin, @group).deliver_now end @@ -77,7 +77,7 @@ def remove_task def grant_access @group.grant_access(@user) - send_grant_access_messages(@user, @group) + send_message(@user, :group_accepted) Message.where(sender: @user, recipient: current_user, param_type: 'group', param_id: @group.id).destroy_all redirect_to @group, notice: t('.success_notice') @@ -90,7 +90,7 @@ def delete_from_group def deny_access @group.users.delete(@user) - send_deny_access_message(@user, @group) + send_message(@user, :group_declined) Message.where(sender: @user, recipient: current_user, param_type: 'group', param_id: @group.id).destroy_all redirect_to @group, notice: t('.success_notice') @@ -108,30 +108,12 @@ def demote_admin private - def send_access_request_message(admin, group) + # type is one of [group_requested, group_accepted, group_declined] + def send_message(recipient, type) Message.create(sender: current_user, - recipient: admin, - text: t('groups.send_access_request_message.message', user: current_user.name, group: group.name), - param_type: 'group', - param_id: group.id, - sender_status: 'd') - end - - def send_deny_access_message(user, group) - Message.create(sender: current_user, - recipient: user, - text: t('groups.send_deny_access_message.message', user: current_user.name, group: group.name), - param_type: 'group_declined', - param_id: group.id, - sender_status: 'd') - end - - def send_grant_access_messages(user, group) - Message.create(sender: current_user, - recipient: user, - text: t('groups.send_grant_access_messages.message', user: current_user.name, group: group.name), - param_type: 'group_accepted', - param_id: group.id, + recipient:, + param_type: type, + param_id: @group.id, sender_status: 'd') end diff --git a/app/models/message.rb b/app/models/message.rb index c3b48dfca..726b1db73 100644 --- a/app/models/message.rb +++ b/app/models/message.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true class Message < ApplicationRecord - validates :text, presence: true + validates :text, presence: true, unless: -> { %w[group_requested group_accepted group_declined collection].include?(param_type) } belongs_to :sender, class_name: 'User', inverse_of: :sent_messages belongs_to :recipient, class_name: 'User', inverse_of: :received_messages @@ -18,7 +18,7 @@ def mark_as_deleted(user) def text # rubocop:disable Metrics/AbcSize case param_type - when 'group' + when 'group_requested' I18n.t('groups.send_access_request_message.message', user: sender.name, group: Group.find(param_id).name) when 'group_accepted' I18n.t('groups.send_grant_access_messages.message', user: sender.name, group: Group.find(param_id).name) diff --git a/app/views/access_request_mailer/send_access_request.html.erb b/app/views/access_request_mailer/send_access_request.html.erb index 27e0abfec..c35034620 100644 --- a/app/views/access_request_mailer/send_access_request.html.erb +++ b/app/views/access_request_mailer/send_access_request.html.erb @@ -4,13 +4,13 @@
-
- <%= @user.name %> asked to join your group "<%= @group.name %>"
- If you want to give your permission click on the link below.
- Otherwise ignore this Email.
+ <%= t('groups.access_request_mailer.message_line1', user: @user.name, group: @group.name) %>
+ <%= t('groups.access_request_mailer.message_line2') %>
+ <%= t('groups.access_request_mailer.message_line3') %>
- <%= link_to 'Confirm Request', group_url(@group)%>
+ <%= link_to t('groups.access_request_mailer.confirm_request'), group_url(@group)%>