Class AccountController
In: app/controllers/account_controller.rb
Parent: ApplicationController

Controlador para las opciones de configuracion de la cuenta de los usuarios registrados

Methods

activate   confirm_delete   destroy   edit   pwd_edit   pwd_update   show   update  

Public Instance methods

Activación de la cuenta de un usuario registrado

[Source]

     # 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

[Source]

    # 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

[Source]

    # 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

[Source]

    # 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

[Source]

    # 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

[Source]

    # 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

[Source]

    # 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

[Source]

    # 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

[Validate]