summaryrefslogtreecommitdiff
path: root/app/mailers/emails/projects.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/mailers/emails/projects.rb')
-rw-r--r--app/mailers/emails/projects.rb75
1 files changed, 27 insertions, 48 deletions
diff --git a/app/mailers/emails/projects.rb b/app/mailers/emails/projects.rb
index 6662c407c2c..43a2a7e80a8 100644
--- a/app/mailers/emails/projects.rb
+++ b/app/mailers/emails/projects.rb
@@ -1,64 +1,38 @@
module Emails
module Projects
- def project_access_granted_email(project_member_id)
- @project_member = ProjectMember.find project_member_id
- @project = @project_member.project
-
- @target_url = namespace_project_url(@project.namespace, @project)
- @current_user = @project_member.user
+ def project_access_requested_email(project_member_id)
+ setup_project_member_mail(project_member_id)
- mail(to: @project_member.user.notification_email,
- subject: subject("Access to project was granted"))
- end
+ @requester = @project_member.created_by
- def project_member_requested_access(project_member_id)
- @project_member = ProjectMember.find project_member_id
- @project = @project_member.project
- @target_url = namespace_project_url(@project.namespace, @project)
+ project_admins = User.where(id: @project.project_members.admins.pluck(:user_id)).pluck(:notification_email)
- project_admins = ProjectMember.in_project(@project)
- .where(access_level: [Gitlab::Access::OWNER, Gitlab::Access::MASTER])
- .pluck(:notification_email)
-
- project_admins.each do |address|
- mail(to: address,
- subject: subject("Request to join project: #{@project.name_with_namespace}"))
- end
+ mail(to: project_admins,
+ subject: subject("Request to join #{@project.name_with_namespace} project"))
end
- def project_request_access_accepted_email(project_member_id)
- @project_member = ProjectMember.find project_member_id
- return if @project_member.created_by.nil?
-
- @project = @project_member.project
+ def project_access_granted_email(project_member_id)
+ setup_project_member_mail(project_member_id)
- @target_url = namespace_project_url(@project.namespace, @project)
- @current_user = @project_member.created_by
+ @current_user = @project_member.user
- mail(to: @project_member.created_by.notification_email,
- subject: subject('Request for access granted'))
+ mail(to: @current_user.notification_email,
+ subject: subject("Access to #{@project.name_with_namespace} project was granted"))
end
- def project_request_access_declined_email(project_member_id)
- @project_member = ProjectMember.find project_member_id
- return if @project_member.created_by.nil?
-
- @project = @project_member.project
-
+ def project_access_denied_email(project_id, user_id)
+ @project = Project.find(project_id)
+ @current_user = User.find(user_id)
@target_url = namespace_project_url(@project.namespace, @project)
- @current_user = @project_member.created_by
- mail(to: @project_member.created_by.notification_email,
- subject: subject('Request for access declined'))
+ mail(to: @current_user.notification_email,
+ subject: subject("Access to #{@project.name_with_namespace} project was denied"))
end
-
def project_member_invited_email(project_member_id, token)
- @project_member = ProjectMember.find project_member_id
- @project = @project_member.project
- @token = token
+ setup_project_member_mail(project_member_id)
- @target_url = namespace_project_url(@project.namespace, @project)
+ @token = token
@current_user = @project_member.user
mail(to: @project_member.invite_email,
@@ -66,12 +40,9 @@ module Emails
end
def project_invite_accepted_email(project_member_id)
- @project_member = ProjectMember.find project_member_id
+ setup_project_member_mail(project_member_id)
return if @project_member.created_by.nil?
- @project = @project_member.project
-
- @target_url = namespace_project_url(@project.namespace, @project)
@current_user = @project_member.created_by
mail(to: @project_member.created_by.notification_email,
@@ -117,5 +88,13 @@ module Emails
reply_to: @message.reply_to,
subject: @message.subject)
end
+
+ private
+
+ def setup_project_member_mail(project_member_id)
+ @project_member = ProjectMember.find(project_member_id)
+ @project = @project_member.project
+ @target_url = namespace_project_url(@project.namespace, @project)
+ end
end
end