All pastes #754148 Raw Edit

Mine

public text v1 · immutable
#754148 ·published 2007-10-29 20:37 UTC
rendered paste body
require 'digest/sha1'

class Account::InController < ApplicationController
# If you want "remember me" functionality, add this before_filter to Application Controller
# before_filter :login_from_cookie

	# say something nice, you goof!  something sweet.
	def index
		redirect_to(:action => 'signup') unless logged_in? || User.count > 0
	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 => '/account/contests')
			flash[:notice] = "Logged in successfully"
		else
			flash[:notice] = "Invalid login information."
		end
	end
	
	def forget
		return unless request.post?
		user = User.find_by_email(params[:email])
		if user.nil?
			flash[:notice] = 'This e-mail is not registered in our database.'
		else
			password = Digest::SHA1.hexdigest(rand.to_s)[1..6]
			user.encrypt(password)
			user.save!
			flash[:notice] = 'A new password was sent to your e-mail address.'
		#	flash[:notice] = password
			redirect_back_or_default(:controller => '/account/in', :action => 'login')
		end
	end
	
	def signup
		params[:user]['login'] = params[:user]['email'] if params[:user]
		@user = User.new(params[:user])
		return unless request.post?
		if simple_captcha_valid?
			@user.save!
			self.current_user = @user
		    redirect_to (:controller => '/account/start', :action => 'contests')
		#	redirect_back_or_default(:controller => '/account/in', :action => 'verify')
			flash[:notice] = "Thanks for signing up!"
		else
			flash[:notice] = '<span style="color:#f00">You must enter the text as it appears on the image, please try again.</span> '
			render :action => 'signup'		
		end
	rescue ActiveRecord::RecordInvalid
		flash[:notice] = @user.errors.full_messages.join('<br /><span style="color:#f00">*</span> ')
		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 => '/account/in', :action => 'login')
		redirect_back_or_default(:controller => '/')
	end
	
	def verify
	
	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/contests')
		flash[:notice] = "Your account has been activated."
		end
	end
end