Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class AccountController < ApplicationController
- layout "main"
- observer :user_observer
- # say something nice, you goof! something sweet.
- def index
- if logged_in?
- redirect_to(:action => 'index', :controller => 'app')
- else
- redirect_to(:action => 'signup') unless logged_in? || User.count > 0
- end
- end
- def login
- return unless request.post?
- self.current_user = User.authenticate(params[:login], params[:password])
- if logged_in?
- 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
- redirect_back_or_default(:controller => '/app', :action => 'index')
- #flash[:notice] = "Logged in successfully"
- else
- flash[:error] = "Sorry, but you entered the wrong login or password."
- end
- end
- def signup
- @user = User.new(params[:user])
- return unless request.post?
- @user.save!
- #self.current_user = @user
- redirect_back_or_default(:controller => '/account', :action => 'step_two')
- flash[:notice] = "Thanks for signing up!"
- rescue ActiveRecord::RecordInvalid
- render :action => 'signup'
- end
- def logout
- self.current_user.forget_me if logged_in?
- cookies.delete :auth_token
- reset_session
- flash[:notice] = "You have been logged out."
- redirect_back_or_default(:controller => '/')
- end
- def activate
- @user = User.find_by_activation_code(params[:id])
- if @user and @user.activate
- self.current_user = @user
- redirect_back_or_default(:controller => '/account', :action => 'index')
- flash[:notice] = "Your account has been activated."
- end
- end
- def step_two
- end
- def forgot_password
- return unless request.post?
- if @user = User.find_by_login(params[:login])
- @user.forgot_password
- @user.save
- flash[:success] = "A password reset link has been sent to your email address"
- redirect_back_or_default(:controller => '/account', :action => 'login')
- else
- flash[:error] = "Could not find a user with that email address"
- end
- end
- def reset_password
- @user = User.find_by_password_reset_code(params[:id])
- return if @user unless params[:password]
- if (params[:password] == params[:password_confirmation])
- self.current_user = @user #for the next two lines to work
- current_user.password_confirmation = params[:password_confirmation]
- current_user.password = params[:password]
- @user.reset_password
- flash[:notice] = current_user.save ? "Password reset" : "Password not reset"
- else
- flash[:notice] = "Password mismatch"
- end
- redirect_back_or_default(:controller => '/account', :action => 'index')
- end
- end
Add Comment
Please, Sign In to add comment