comparison app/controllers/users_controller.rb @ 37:94944d00e43c

* Update to SVN trunk rev 4411
author Chris Cannam <chris.cannam@soundsoftware.ac.uk>
date Fri, 19 Nov 2010 13:24:41 +0000
parents 40f7cfd4df19
children bbb139d5ca95 af80e5618e9b
comparison
equal deleted inserted replaced
22:40f7cfd4df19 37:94944d00e43c
49 render :layout => !request.xhr? 49 render :layout => !request.xhr?
50 end 50 end
51 51
52 def show 52 def show
53 @user = User.find(params[:id]) 53 @user = User.find(params[:id])
54 @custom_values = @user.custom_values
55 54
56 # show projects based on current user visibility 55 # show projects based on current user visibility
57 @memberships = @user.memberships.all(:conditions => Project.visible_by(User.current)) 56 @memberships = @user.memberships.all(:conditions => Project.visible_by(User.current))
58 57
59 events = Redmine::Activity::Fetcher.new(User.current, :author => @user).events(nil, nil, :limit => 10) 58 events = Redmine::Activity::Fetcher.new(User.current, :author => @user).events(nil, nil, :limit => 10)
69 68
70 rescue ActiveRecord::RecordNotFound 69 rescue ActiveRecord::RecordNotFound
71 render_404 70 render_404
72 end 71 end
73 72
74 def add 73 def new
75 if request.get? 74 @notification_options = User::MAIL_NOTIFICATION_OPTIONS
76 @user = User.new(:language => Setting.default_language) 75 @notification_option = Setting.default_notification_option
76
77 @user = User.new(:language => Setting.default_language)
78 @auth_sources = AuthSource.find(:all)
79 end
80
81 verify :method => :post, :only => :create, :render => {:nothing => true, :status => :method_not_allowed }
82 def create
83 @notification_options = User::MAIL_NOTIFICATION_OPTIONS
84 @notification_option = Setting.default_notification_option
85
86 @user = User.new(params[:user])
87 @user.admin = params[:user][:admin] || false
88 @user.login = params[:user][:login]
89 @user.password, @user.password_confirmation = params[:password], params[:password_confirmation] unless @user.auth_source_id
90
91 # TODO: Similar to My#account
92 @user.mail_notification = params[:notification_option] || 'only_my_events'
93 @user.pref.attributes = params[:pref]
94 @user.pref[:no_self_notified] = (params[:no_self_notified] == '1')
95
96 if @user.save
97 @user.pref.save
98 @user.notified_project_ids = (params[:notification_option] == 'selected' ? params[:notified_project_ids] : [])
99
100 Mailer.deliver_account_information(@user, params[:password]) if params[:send_information]
101 flash[:notice] = l(:notice_successful_create)
102 redirect_to(params[:continue] ? {:controller => 'users', :action => 'new'} :
103 {:controller => 'users', :action => 'edit', :id => @user})
104 return
77 else 105 else
78 @user = User.new(params[:user]) 106 @auth_sources = AuthSource.find(:all)
79 @user.admin = params[:user][:admin] || false 107 @notification_option = @user.mail_notification
80 @user.login = params[:user][:login] 108
81 @user.password, @user.password_confirmation = params[:password], params[:password_confirmation] unless @user.auth_source_id 109 render :action => 'new'
82 if @user.save
83 Mailer.deliver_account_information(@user, params[:password]) if params[:send_information]
84 flash[:notice] = l(:notice_successful_create)
85 redirect_to(params[:continue] ? {:controller => 'users', :action => 'add'} :
86 {:controller => 'users', :action => 'edit', :id => @user})
87 return
88 end
89 end 110 end
90 @auth_sources = AuthSource.find(:all)
91 end 111 end
92 112
93 def edit 113 def edit
94 @user = User.find(params[:id]) 114 @user = User.find(params[:id])
95 if request.post? 115 @notification_options = @user.valid_notification_options
96 @user.admin = params[:user][:admin] if params[:user][:admin] 116 @notification_option = @user.mail_notification
97 @user.login = params[:user][:login] if params[:user][:login] 117
98 if params[:password].present? && (@user.auth_source_id.nil? || params[:user][:auth_source_id].blank?)
99 @user.password, @user.password_confirmation = params[:password], params[:password_confirmation]
100 end
101 @user.group_ids = params[:user][:group_ids] if params[:user][:group_ids]
102 @user.attributes = params[:user]
103 # Was the account actived ? (do it before User#save clears the change)
104 was_activated = (@user.status_change == [User::STATUS_REGISTERED, User::STATUS_ACTIVE])
105 if @user.save
106 if was_activated
107 Mailer.deliver_account_activated(@user)
108 elsif @user.active? && params[:send_information] && !params[:password].blank? && @user.auth_source_id.nil?
109 Mailer.deliver_account_information(@user, params[:password])
110 end
111 flash[:notice] = l(:notice_successful_update)
112 redirect_to :back
113 end
114 end
115 @auth_sources = AuthSource.find(:all) 118 @auth_sources = AuthSource.find(:all)
116 @membership ||= Member.new 119 @membership ||= Member.new
120 end
121
122 verify :method => :put, :only => :update, :render => {:nothing => true, :status => :method_not_allowed }
123 def update
124 @user = User.find(params[:id])
125 @notification_options = @user.valid_notification_options
126 @notification_option = @user.mail_notification
127
128 @user.admin = params[:user][:admin] if params[:user][:admin]
129 @user.login = params[:user][:login] if params[:user][:login]
130 if params[:password].present? && (@user.auth_source_id.nil? || params[:user][:auth_source_id].blank?)
131 @user.password, @user.password_confirmation = params[:password], params[:password_confirmation]
132 end
133 @user.group_ids = params[:user][:group_ids] if params[:user][:group_ids]
134 @user.attributes = params[:user]
135 # Was the account actived ? (do it before User#save clears the change)
136 was_activated = (@user.status_change == [User::STATUS_REGISTERED, User::STATUS_ACTIVE])
137 # TODO: Similar to My#account
138 @user.mail_notification = params[:notification_option] || 'only_my_events'
139 @user.pref.attributes = params[:pref]
140 @user.pref[:no_self_notified] = (params[:no_self_notified] == '1')
141
142 if @user.save
143 @user.pref.save
144 @user.notified_project_ids = (params[:notification_option] == 'selected' ? params[:notified_project_ids] : [])
145
146 if was_activated
147 Mailer.deliver_account_activated(@user)
148 elsif @user.active? && params[:send_information] && !params[:password].blank? && @user.auth_source_id.nil?
149 Mailer.deliver_account_information(@user, params[:password])
150 end
151 flash[:notice] = l(:notice_successful_update)
152 redirect_to :back
153 else
154 @auth_sources = AuthSource.find(:all)
155 @membership ||= Member.new
156
157 render :action => :edit
158 end
117 rescue ::ActionController::RedirectBackError 159 rescue ::ActionController::RedirectBackError
118 redirect_to :controller => 'users', :action => 'edit', :id => @user 160 redirect_to :controller => 'users', :action => 'edit', :id => @user
119 end 161 end
120 162
121 def edit_membership 163 def edit_membership
122 @user = User.find(params[:id]) 164 @user = User.find(params[:id])
123 @membership = Member.edit_membership(params[:membership_id], params[:membership], @user) 165 @membership = Member.edit_membership(params[:membership_id], params[:membership], @user)
124 @membership.save if request.post? 166 @membership.save if request.post?
125 respond_to do |format| 167 respond_to do |format|