class SessionsController

Public Instance Methods

auth_info() click to toggle source

def mobile

render :action => 'mobile.html', :layout => false

end

# File app/controllers/sessions_controller.rb, line 141
def auth_info
  render :action => 'auth_info.json', :layout => false
end
create() click to toggle source

Creación de una sessión, es decir, login.

# File app/controllers/sessions_controller.rb, line 37
def create
  self.current_user = User.authenticate(params[:email], params[:password])
  process_login
end
destroy() click to toggle source

Logout del sistema

# File app/controllers/sessions_controller.rb, line 43
def destroy
  # store_previous_location unless session[:return_to]
  if logged_in?
    @user_name = current_user.name
    SessionLog.create(:user_id => current_user.id, :action => "logout", :action_at => Time.zone.now, :user_ip => request.remote_ip)
    self.current_user.forget_me 
  end
  cookies.delete :auth_token
  reset_session
  session[:return_to]=request.referer if request.referer && !request.referer.match(/account/)
  respond_to do |format|
    format.html do
      flash[:notice] = t('session.Has_salido', :name => @user_name)
      redirect_back_or_default(root_path)
    end
    format.floki do
      render :json => ''
    end
  end
end
email_activation() click to toggle source

Las nuevas cuentas quedan pendientes de activación por el usuario. Esta acción activa la cuenta a partir del email que se le mandó al usuario al registrarse.

# File app/controllers/sessions_controller.rb, line 116
def email_activation
  @user = User.find_by_email_and_status(params[:email], "pendiente")
  
  if @user
    email = Notifier.create_activate_person_account(@user)

    begin
      logger.info("Mandando activacion a #{@user.email}")
      Notifier.deliver(email)
    rescue Net::SMTPServerBusy, Net::SMTPSyntaxError => err_type
      logger.info("Error al mandar mail de activacion: " + err_type)
      flash[:error] = t('session.Error_servidor_correo')
    else
      flash[:notice] = t('session.activacion_enviada')
    end
  else
    flash[:error] = t('session.No_hay_usuario')
  end
  redirect_to login_path and return      
end
email_password() click to toggle source

Envio de la contraseña por correo electrónico

# File app/controllers/sessions_controller.rb, line 71
def email_password
  if params[:email].blank?
    flash[:notice] = t('session.Por_favor_email')
    redirect_to :action => "password_reminder" and return
  end

  user = User.approved.find_by_email(params[:email])

  if user
    if user.is_twitter_user?
      flash[:notice] = t("session.usuario_twitter_sin_password")
    elsif user.is_facebook_user?
      flash[:notice] = t("session.usuario_facebook_sin_password")
    else
      email = Notifier.create_password_reminder(user)

      begin
        logger.info("Mandando login olvidado")
        Notifier.deliver(email)
        flash[:notice] = t('session.Password_enviado')
      rescue Net::SMTPServerBusy, Net::SMTPSyntaxError => err_type
        logger.info("Error al mandar mail de recordatorio de contraseña: " + err_type)
        flash[:error] = t('session.Error_servidor_correo')
      end
    end
    if !request.xhr?
      redirect_to :action => "new" and return
    else
      render :nothing => true
    end    
  else
    user = User.pending.find_by_email(params[:email])
    if user
      flash[:error] = t('session.pendiente_aprobacion')
      #redirect_to password_reminder_path and return
    else
      flash[:error] = t('session.No_hay_usuario')
      #redirect_to password_reminder_path and return
    end
    redirect_to password_reminder_path and return
  end
end
nav_user_info() click to toggle source
new() click to toggle source

Formulario de inicio de sessión

# File app/controllers/sessions_controller.rb, line 28
def new
  @title = t('session.login_in', :name => site_name)
  @breadcrumbs_info = [[@title, login_path]]
  if request.xhr?
    render :template => 'sessions/new_for_nav', :layout => false and return
  end
end
password_reminder() click to toggle source

Formulario de recordatorio de contraseña

# File app/controllers/sessions_controller.rb, line 65
def password_reminder
  @breadcrumbs_info = [[I18n.t('session.Recordatorio'), password_reminder_path]]
  # render :template => "/sessions/password_reminder"
end