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 132 def activate @title = "Activar cuenta" @user = Person.find(:first, :conditions => ["id= ? AND crypted_password = ? AND status IN ('pendiente', 'aprobado')", params[:u], params[:p]]) if @user.present? @user.update_attribute(:status, "aprobado") self.current_user = @user @success = true else success = false end end
# File app/controllers/account_controller.rb, line 208 def activity get_activity respond_to do |format| format.html do @content = (@my_precontent + @precontent).flatten.uniq.sort {|a,b| b.published_at.to_i <=> a.published_at.to_i}[0..19] render end format.floki do @my_content = @my_precontent.flatten.sort {|a,b| b.published_at.to_i <=> a.published_at.to_i} @content = (@precontent.flatten - @my_content).sort {|a,b| b.published_at.to_i <=> a.published_at.to_i}[0..19] render :action => 'activity.json', :layout => false end end end
Confirmación de la baja del sistema del usuario loggeado
# File app/controllers/account_controller.rb, line 87 def confirm_delete @title = t('account.confirm_delete_account_title') render :action => "confirm_delete" end
Desactivar la cuenta del usuario loggeado
# File app/controllers/account_controller.rb, line 93 def destroy if params[:cancel] flash[:notice] = t('account.cuenta_no_eliminada') redirect_to account_path else @user = User.find(current_user.id) if @user.deactivate_account self.current_user.forget_me if logged_in? cookies.delete :auth_token reset_session flash[:notice] = t('account.cuenta_eliminada') redirect_to root_path else flash[:error] = t('account.cuenta_no_eliminada_razon') redirect_to account_path end end end
Modificar los datos personales del usuario loggeado
# File app/controllers/account_controller.rb, line 40 def edit @user = current_user @title = t('account.your_profile') @breadcrumbs_info = [[t('account.your_profile'), edit_account_path]] end
# File app/controllers/account_controller.rb, line 223 def followings end
# File app/controllers/account_controller.rb, line 113 def image uploader = ImageUploader.cache_from_io!(request.body, params.delete(:qqfile)) @image = { :success => true, :image_cache_name => uploader.cache_name } render :text => @image.to_json and return end
# File app/controllers/account_controller.rb, line 226 def notifications @notifications = current_user.notifications.pending.find(:all, :order => "created_at") @title = Notification.human_name(:count => 2).capitalize end
# File app/controllers/account_controller.rb, line 122 def photo uploader = PhotoUploader.cache_from_io!(request.body, params.delete(:qqfile)) @photo = { :success => true, :photo_cache_name => uploader.cache_name } render :text => @photo.to_json and return end
# File app/controllers/account_controller.rb, line 177 def proposals @user = current_user per_page = request.xhr? ? 5 : 20 order = params[:more_polemic] ? "comments_count DESC" : "contributions.published_at DESC" finder_params = {:order => order, :per_page => per_page, :page => params[:page]} @proposals = current_user.proposals.paginate finder_params @approved_by_majority = Proposal.find_by_sql(["SELECT contributions.id, sum(value) as sum FROM contributions INNER JOIN votes ON (votes.votable_id = contributions.id AND votes.votable_type = 'Contribution') WHERE (((((contributions.published_at <= ?)) AND (contributions.status='aprobado')) AND (contributions.user_id = #{current_user.id}))) AND ( (contributions.type = 'Proposal' ) ) group by contributions.id having sum(value)>0", Time.zone.now]).length respond_to do |format| format.html do if request.xhr? render :partial => '/shared/list_items', :locals => {:items => @proposals, :type => 'proposals'}, :layout => false else render end end format.floki do render :template => "/mob_app/proposals.json", :layout => false, :content_type => "application/json" end end end
Modificar la contraseña del usuario loggeado
# File app/controllers/account_controller.rb, line 59 def pwd_edit @user = User.find(current_user.id) @title = t('account.cambiando_contrasena') @breadcrumbs_info = [[t('account.mi_cuenta'), account_path], [t('account.cambiando_contrasena'), pwd_edit_account_path]] render :action => "pwd_edit" end
Actualizar la contraseña del usuario loggeado
# File app/controllers/account_controller.rb, line 67 def pwd_update @user = User.find(current_user.id) if params[:old_password] != @user.plain_password flash[:error] = t('account.contrasena_erronea') redirect_to :action => "pwd_edit" else if params[:user][:password].empty? @user.errors.add(:password, ActiveRecord::Errors.default_error_messages[:empty]) render :action => "pwd_edit" and return end if @user.update_attributes(:password => params[:user][:password], :password_confirmation => params[:user][:password_confirmation]) flash[:notice] = t('account.contrasena_modificada') redirect_to(params[:return_to].blank? ? account_path : params[:return_to]) else render :action => "pwd_edit" end end end
# File app/controllers/account_controller.rb, line 144 def questions # Tus preguntas @answered_questions_count = current_user.questions.approved.published.answered.count @user = current_user # HQ # @question = Question.new # get_questions per_page = request.xhr? ? 5 : 20 order = params[:more_polemic] ? "comments_count DESC" : "published_at DESC" if params[:answered] @questions = @user.questions.published.answered.paginate :order => order, :per_page => per_page, :page => params[:page] else @questions = @user.questions.published.paginate :order => order, :per_page => per_page, :page => params[:page] end respond_to do |format| format.html do if request.xhr? render :partial => '/questions/questions_or_none', :layout => false else render end end format.floki do render :template => "/mob_app/questions.json", :layout => false, :content_type => "application/json" end end end
La cuenta del usuario loggeado
# File app/controllers/account_controller.rb, line 32 def show get_activity @items = (@my_precontent + @precontent).flatten.uniq.sort {|a,b| b.published_at.to_i <=> a.published_at.to_i}[0..19] # HQ # @question = Question.new end
Actualizar los datos personales del usuario loggeado
# File app/controllers/account_controller.rb, line 47 def update @user = User.find(current_user.id) if @user.update_attributes(params[:user]) flash[:notice] = t('account.datos_guardados') redirect_to account_path else render :action => 'edit' end end