changeset 291:f3b2dc533e83 bug_97

added feature to send mails to user when added to project; TODO: need to create template.
author luisf <luis.figueira@eecs.qmul.ac.uk>
date Wed, 23 Mar 2011 17:38:13 +0000
parents f7e79424e753
children 5f4ac0a159fa
files app/controllers/members_controller.rb app/models/mailer.rb
diffstat 2 files changed, 39 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/app/controllers/members_controller.rb	Tue Mar 22 14:16:09 2011 +0000
+++ b/app/controllers/members_controller.rb	Wed Mar 23 17:38:13 2011 +0000
@@ -28,12 +28,24 @@
       attrs = params[:member].dup
       if (user_ids = attrs.delete(:user_ids))
         user_ids.each do |user_id|
-          members << Member.new(attrs.merge(:user_id => user_id))
+          @new_member = Member.new(attrs.merge(:user_id => user_id))
+          members << @new_member
+
+          # send notification to member
+          Mailer.deliver_add_to_project(@new_member, @project)
+
         end
       else
-        members << Member.new(attrs)
+        @new_member = Member.new(attrs)
+        members << @new_member
+        
+        # send notification to member
+        Mailer.deliver_add_to_project(@new_member, @project)
+        
       end
+
       @project.members << members
+
     end
     respond_to do |format|
       if members.present? && members.all? {|m| m.valid? }
--- a/app/models/mailer.rb	Tue Mar 22 14:16:09 2011 +0000
+++ b/app/models/mailer.rb	Wed Mar 23 17:38:13 2011 +0000
@@ -31,6 +31,27 @@
     h = h.to_s.gsub(%r{\/.*$}, '') unless Redmine::Utils.relative_url_root.blank?
     { :host => h, :protocol => Setting.protocol }
   end
+
+
+
+  # Builds a tmail object used to email the specified user that he was added to a project
+  #
+  # Example:
+  #   add_to_project(user) => tmail object
+  #   Mailer.deliver_add_to_project(user) => sends an email to the registered user
+  def add_to_project(member, project)
+
+    user = User.find(member.user_id)
+
+    set_language_if_valid user.language
+    recipients user.mail
+    subject l(:mail_subject_register, Setting.app_title)
+    body :user => user,
+    :login_url => url_for(:controller => 'account', :action => 'login')
+    render_multipart('account_activated', body)
+  end
+
+
   
   # Builds a tmail object used to email recipients of the added issue.
   #
@@ -440,3 +461,7 @@
     end
   end
 end
+
+
+
+