class AccountController

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

Public Instance Methods

activate() click to toggle source

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
activity() click to toggle source
# 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
confirm_delete() click to toggle source

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
destroy() click to toggle source

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
edit() click to toggle source

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
followings() click to toggle source
# File app/controllers/account_controller.rb, line 223
def followings
end
image() click to toggle source
# 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
notifications() click to toggle source
# 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
photo() click to toggle source
# 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
proposals() click to toggle source
# 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
pwd_edit() click to toggle source

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
pwd_update() click to toggle source

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
questions() click to toggle source
# 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
show() click to toggle source

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
update() click to toggle source

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