1 class LdapUsersController < ApplicationController
\r
3 before_filter :require_admin, :setup_auth_source
\r
6 @ldap_users = LdapUser.find(:all)
\r
10 @ldap_user = LdapUser.new
\r
11 render :action => "edit"
\r
15 @user = User.new(:language => Setting.default_language)
\r
16 @ldap_user = LdapUser.new
\r
17 @user.login = @ldap_user.login = params[:ldap_user][:login]
\r
19 if assign_params_and_save
\r
20 flash[:notice] = l(:notice_successful_create)
\r
22 if @user.save_without_validation
\r
23 @user.auth_source = nil # dummy
\r
24 Mailer.deliver_account_information(@user, @ldap_user.password) if params[:send_information]
\r
26 flash[:error] = l(:error_failed_to_create_redmine_user)
\r
29 redirect_to :action => 'edit', :id => @ldap_user.login
\r
31 render :action => 'edit'
\r
36 @ldap_user = LdapUser.find(params[:id])
\r
40 @user = User.find_by_login(params[:id]) || User.new(:login => params[:id])
\r
41 @ldap_user = LdapUser.find(params[:id])
\r
43 if assign_params_and_save
\r
44 flash[:notice] = l(:notice_successful_update)
\r
45 if @ldap_user.admin? && !params[:ldap_user][:password].blank?
\r
46 flash[:warning] = l(:warning_need_to_restart)
\r
49 if @user.save_without_validation
\r
50 @user.auth_source = nil # dummy
\r
51 Mailer.deliver_account_information(@user, @ldap_user.password) if params[:send_information] && !@ldap_user.password.blank?
\r
53 flash[:error] = l(:error_failed_to_update_redmine_user)
\r
56 redirect_to :action => 'edit', :id => @ldap_user.login
\r
58 render :action => 'edit'
\r
63 #@ldap_user = LdapUser.find(params[:id])
\r
67 def setup_auth_source
\r
68 setting = RedmineLeSetting.instance
\r
69 return render_403 if setting.use_external_ldap
\r
70 return render_404 unless @auth_source = LdapUser.auth_source = setting.auth_source
\r
73 def assign_params_and_save
\r
74 h = params[:ldap_user]
\r
75 attrs = %w[firstname lastname mail]
\r
77 @user.send(attr+"=", @ldap_user.send(attr+"=", h[attr]))
\r
79 @ldap_user.password = h[:password]
\r
80 @ldap_user.password_confirmation = h[:password_confirmation]
\r
83 @user.errors.each_error {|attr, error|
\r
84 if attrs.include?(attr) && @user.send(attr+"_changed?")
\r
85 @ldap_user.errors.add_to_base(error.full_message)
\r
89 @user.auth_source ||= @auth_source
\r
91 RedmineLeSetting.transaction do
\r
92 @ldap_user.errors.empty? && @ldap_user.save
\r
95 @ldap_user.errors.empty?
\r