Class: UsersController
- Inherits:
-
ApplicationController
- Object
- ActionController::Base
- ApplicationController
- UsersController
- Defined in:
- app/controllers/users_controller.rb
Instance Method Summary collapse
-
#create ⇒ Object
TODO: test.
-
#dev_skin(skin_id = ) ⇒ Object
nil ==> no dev mode -1 ==> rescue skin 0 ==> normal skin xx ==> fixed skin.
-
#edit ⇒ Object
TODO: test.
-
#index ⇒ Object
Show the list of users.
- #preferences ⇒ Object
-
#rescue ⇒ Object
Use $default skin for rendering.
- #show ⇒ Object
- #update ⇒ Object
Methods included from Zena::App
Instance Method Details
#create ⇒ Object
TODO: test
59 60 61 62 63 64 65 66 67 |
# File 'app/controllers/users_controller.rb', line 59 def create if params[:groups] params[:user][:group_ids] = params[:groups].values end get_groups_list @user = secure(User) { User.create(params[:user]) } end |
#dev_skin(skin_id = ) ⇒ Object
nil ==> no dev mode -1 ==> rescue skin 0 ==> normal skin xx ==> fixed skin
38 39 40 41 42 43 44 45 46 |
# File 'app/controllers/users_controller.rb', line 38 def dev_skin(skin_id = params['skin_id']) visitor.update_attributes('dev_skin_id' => skin_id) if request.referer && !(request.referer =~ /login/) redirect_to request.referer else redirect_to home_path(:prefix => prefix) end end |
#edit ⇒ Object
TODO: test
70 71 72 73 74 75 76 77 |
# File 'app/controllers/users_controller.rb', line 70 def edit @user.password = nil get_groups_list respond_to do |format| format.html { render :partial => 'users/form' } format.js { render :partial => 'users/form', :layout => false } end end |
#index ⇒ Object
Show the list of users. Rendered in the admin layout.
16 17 18 19 20 21 22 23 24 25 26 |
# File 'app/controllers/users_controller.rb', line 16 def index secure!(User) do @users = User.paginate(:all, :order => 'status DESC, login ASC', :page => params[:page], :per_page => 20) end get_groups_list @user = User.new respond_to do |format| format.html end end |
#preferences ⇒ Object
28 29 30 31 32 |
# File 'app/controllers/users_controller.rb', line 28 def preferences respond_to do |format| format.html # preferences.html.erb end end |
#rescue ⇒ Object
Use $default skin for rendering
49 50 51 52 53 54 55 56 |
# File 'app/controllers/users_controller.rb', line 49 def rescue if visitor.is_admin? dev_skin(-1) else save_after_login_path redirect_to login_path end end |
#show ⇒ Object
8 9 10 11 12 13 |
# File 'app/controllers/users_controller.rb', line 8 def show respond_to do |format| format.html { render :file => admin_layout, :layout => false } format.js end end |
#update ⇒ Object
79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 |
# File 'app/controllers/users_controller.rb', line 79 def update if skin_id = params['user']['dev_skin_id'] return dev_skin(skin_id) end @update = params.delete(:update) opts = params[:user] unless opts[:password].blank? if opts[:password].strip.size < 6 @user.errors.add('password', 'too short') end if !visitor.is_admin? || opts[:retype_password] if opts[:password] != opts[:retype_password] @user.errors.add('retype_password', 'does not match new password') end end if !visitor.is_admin? || @user.id == visitor.id if !@user.valid_password?(opts[:old_password]) @user.errors.add('old_password', "not correct") end end if @user.errors.empty? @user.password = opts[:password] opts.delete(:password) opts.delete(:retype_password) opts.delete(:old_password) end end if @user.errors.empty? @user.update_attributes(params[:user]) if @user.errors.empty? flash.now[:notice] = _('information successfully updated') else flash.now[:error ] = _('could not update user') end end respond_to do |format| format.html # TODO format.js end end |