##// END OF EJS Templates
Send an email to the user when an administrator activates a registered user (#2656)....
Jean-Philippe Lang -
r2422:04c428e05948
parent child
Show More
@@ -0,0 +1,2
1 <p><%= l(:notice_account_activated) %></p>
2 <p><%= l(:label_login) %>: <%= link_to @login_url, @login_url %></p>
@@ -0,0 +1,2
1 <%= l(:notice_account_activated) %>
2 <%= l(:label_login) %>: <%= @login_url %>
@@ -75,7 +75,11 class UsersController < ApplicationController
75 @user.admin = params[:user][:admin] if params[:user][:admin]
75 @user.admin = params[:user][:admin] if params[:user][:admin]
76 @user.login = params[:user][:login] if params[:user][:login]
76 @user.login = params[:user][:login] if params[:user][:login]
77 @user.password, @user.password_confirmation = params[:password], params[:password_confirmation] unless params[:password].nil? or params[:password].empty? or @user.auth_source_id
77 @user.password, @user.password_confirmation = params[:password], params[:password_confirmation] unless params[:password].nil? or params[:password].empty? or @user.auth_source_id
78 if @user.update_attributes(params[:user])
78 @user.attributes = params[:user]
79 # Was the account actived ? (do it before User#save clears the change)
80 was_activated = (@user.status_change == [User::STATUS_REGISTERED, User::STATUS_ACTIVE])
81 if @user.save
82 Mailer.deliver_account_activated(@user) if was_activated
79 flash[:notice] = l(:notice_successful_update)
83 flash[:notice] = l(:notice_successful_update)
80 # Give a string to redirect_to otherwise it would use status param as the response code
84 # Give a string to redirect_to otherwise it would use status param as the response code
81 redirect_to(url_for(:action => 'list', :status => params[:status], :page => params[:page]))
85 redirect_to(url_for(:action => 'list', :status => params[:status], :page => params[:page]))
@@ -133,6 +133,15 class Mailer < ActionMailer::Base
133 :url => url_for(:controller => 'users', :action => 'index', :status => User::STATUS_REGISTERED, :sort_key => 'created_on', :sort_order => 'desc')
133 :url => url_for(:controller => 'users', :action => 'index', :status => User::STATUS_REGISTERED, :sort_key => 'created_on', :sort_order => 'desc')
134 end
134 end
135
135
136 # A registered user's account was activated by an administrator
137 def account_activated(user)
138 set_language_if_valid user.language
139 recipients user.mail
140 subject l(:mail_subject_register, Setting.app_title)
141 body :user => user,
142 :login_url => url_for(:controller => 'account', :action => 'login')
143 end
144
136 def lost_password(token)
145 def lost_password(token)
137 set_language_if_valid(token.user.language)
146 set_language_if_valid(token.user.language)
138 recipients token.user.mail
147 recipients token.user.mail
@@ -126,6 +126,22 class UsersControllerTest < Test::Unit::TestCase
126 assert_equal 2, Member.find(1).role_id
126 assert_equal 2, Member.find(1).role_id
127 end
127 end
128
128
129 def test_edit_with_activation_should_send_a_notification
130 u = User.new(:firstname => 'Foo', :lastname => 'Bar', :mail => 'foo.bar@somenet.foo', :language => 'fr')
131 u.login = 'foo'
132 u.status = User::STATUS_REGISTERED
133 u.save!
134 ActionMailer::Base.deliveries.clear
135 Setting.bcc_recipients = '1'
136
137 post :edit, :id => u.id, :user => {:status => User::STATUS_ACTIVE}
138 assert u.reload.active?
139 mail = ActionMailer::Base.deliveries.last
140 assert_not_nil mail
141 assert_equal ['foo.bar@somenet.foo'], mail.bcc
142 assert mail.body.include?(ll('fr', :notice_account_activated))
143 end
144
129 def test_destroy_membership
145 def test_destroy_membership
130 assert_routing(
146 assert_routing(
131 #TODO: use DELETE method on user_membership_path, modify form
147 #TODO: use DELETE method on user_membership_path, modify form
General Comments 0
You need to be logged in to leave comments. Login now