Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # This controller handles the login/logout function of the site.
- class SessionsController < ApplicationController
- before_filter :login_required, :only => :destroy
- before_filter :not_logged_in_required, :only => [:new, :create]
- # before_filter :store_location
- # render new.rhtml
- def new
- end
- def create
- password_authentication(params[:login], params[:password])
- end
- def destroy
- self.current_user.forget_me if logged_in?
- cookies.delete :auth_token
- reset_session
- flash[:notice] = "You have been logged out."
- redirect_to root_path
- end
- protected
- def password_authentication(login, password)
- user = User.authenticate(login, password)
- if user == nil
- failed_login("Your username or password is incorrect.")
- elsif user.activated_at.blank?
- failed_login("Your account is not active, please check your email for the activation code.")
- elsif user.enabled == false
- failed_login("Your account has been disabled.")
- else
- self.current_user = user
- successful_login
- end
- end
- def sub_domain_name(sub_domain)
- sub_domain = current_subdomain
- send "#{sub_domain}_home_path"
- end
- def domain_name(domain)
- domain = request.domain.gsub(/(.com|.net|.org)$/, "")
- send "#{domain}_home_path"
- end
- private
- def failed_login(message)
- flash.now[:error] = message
- render :action => 'new'
- end
- def successful_login
- if params[:remember_me] == "1"
- self.current_user.remember_me
- cookies[:auth_token] = { :value => self.current_user.remember_token , :expires => self.current_user.remember_token_expires_at }
- end
- flash[:notice] = "Logged in successfully"
- return_to = session[:return_to]
- return_to.nil? ? redirect_to(domain_name("domain")) : redirect_to(sub_domain_name("sub_domain"))
- end
- end
Add Comment
Please, Sign In to add comment