| Class | AccountController |
| In: |
app/controllers/account_controller.rb
|
| Parent: | ApplicationController |
Controlador para las opciones de configuracion de la cuenta de los usuarios registrados
Activación de la cuenta de un usuario registrado
# File app/controllers/account_controller.rb, line 99
99: def activate
100: @title = "Activar cuenta"
101: if @user = Person.find(:first, :conditions => ["id= ? AND crypted_password = ? AND status IN ('pendiente', 'aprobado')", params[:u], params[:p]])
102: @user.update_attribute(:status, "aprobado")
103: self.current_user = @user
104: @success = true
105: else
106: success = false
107: end
108: end
Confirmación de la baja del sistema del usuario loggeado
# File app/controllers/account_controller.rb, line 73
73: def confirm_delete
74: @title = t('account.confirm_delete_account_title')
75: render :action => "confirm_delete", :layout => @layout
76: end
Eliminar la cuenta del usuario loggeado
# File app/controllers/account_controller.rb, line 79
79: def destroy
80: if params[:cancel]
81: flash[:notice] = t('account.cuenta_no_eliminada')
82: redirect_to account_path
83: else
84: @user = User.find(current_user.id)
85: if @user.destroy
86: self.current_user.forget_me if logged_in?
87: cookies.delete :auth_token
88: reset_session
89: flash[:notice] = t('account.cuenta_eliminada')
90: redirect_to root_path
91: else
92: flash[:error] = t('account.cuenta_no_eliminada_razon')
93: redirect_to account_path
94: end
95: end
96: end
Modificar los datos personales del usuario loggeado
# File app/controllers/account_controller.rb, line 20
20: def edit
21: @user = current_user
22: @title = t('account.modificar_mis_datos')
23: @breadcrumbs_info = [[t('account.mi_cuenta'), account_path], [t('account.modificar_mis_datos'), edit_account_path]]
24: render :action => "edit", :layout => @layout
25: end
Modificar la contraseña del usuario loggeado
# File app/controllers/account_controller.rb, line 45
45: def pwd_edit
46: @user = User.find(current_user.id)
47: @title = t('account.cambiando_contrasena')
48: @breadcrumbs_info = [[t('account.mi_cuenta'), account_path], [t('account.cambiando_contrasena'), pwd_edit_account_path]]
49: render :action => "pwd_edit", :layout => @layout
50: end
Actualizar la contraseña del usuario loggeado
# File app/controllers/account_controller.rb, line 53
53: def pwd_update
54: @user = User.find(current_user.id)
55: if params[:old_password] != @user.plain_password
56: flash[:error] = t('account.contrasena_erronea')
57: redirect_to :action => "pwd_edit", :layout => @layout
58: else
59: if params[:user][:password].empty?
60: @user.errors.add(:password, ActiveRecord::Errors.default_error_messages[:empty])
61: render :action => "pwd_edit", :layout => @layout and return
62: end
63: if @user.update_attributes(:password => params[:user][:password], :password_confirmation => params[:user][:password_confirmation])
64: flash[:notice] = t('account.contrasena_modificada')
65: redirect_to(params[:return_to].blank? ? account_path : params[:return_to])
66: else
67: render :action => "pwd_edit", :layout => @layout
68: end
69: end
70: end
La cuenta del usuario loggeado
# File app/controllers/account_controller.rb, line 10
10: def show
11: @title_for_head = t('account.mi_cuenta')
12: @breadcrumbs_info = [[t('account.mi_cuenta'), account_path]]
13: if [Editor, Admin].include?(current_user.class)
14: redirect_to admin_path and return
15: end
16: render :action => "show", :layout => @layout
17: end
Actualizar los datos personales del usuario loggeado
# File app/controllers/account_controller.rb, line 28
28: def update
29: @user = User.find(current_user.id)
30: params[:user][:department_ids] ||= []
31: # @user.department_ids= updates directly the database, that's why I use a manual
32: # transaction here
33: begin
34: User.transaction do
35: @user.update_attributes!(params[:user])
36: redirect_to account_path
37: end
38: rescue
39: render :action => 'edit', :layout => @layout
40: end
41:
42: end