Sha256: 33c99362773c035ea045306ada56034e8f0f75ca0429cd0c9c751edd2cffd9aa
Contents?: true
Size: 1.82 KB
Versions: 4
Compression:
Stored size: 1.82 KB
Contents
module UserSystem protected # authenticate_user filter. add # # before_filter :authenticate_user # def authenticate_user return true if authenticated_user? session[:return_to] = request.request_uri access_denied return false end # overwrite if you want to have special behavior in case the user is not authorized # to access the current operation. # the default action is to redirect to the login screen # example use : # a popup window might just close itself for instance def access_denied redirect_to :controller => "/user", :action => "login" end def redirect_back_or_default(default) if session[:return_to].nil? redirect_to default else redirect_to_url session[:return_to] session[:return_to] = nil end end def authenticated_user? if session[:user_id] @current_user = User.find_by_id(session[:user_id]) return false if @current_user.nil? return true end if cookie = cookies[:autologin] cookie_value = case cookie when String: cookies[:autologin] when Hash: cookies[:autologin][:value].first else raise "Unknown cookie class: #{cookie.class}" end @current_user = User.authenticate(cookie_value, '') if @current_user session[:user_id] = @current_user.id return true end end # If not, is the user being authenticated by a token (created by signup/forgot password actions)? return false if not params['user'] id = params['user']['id'] key = params['key'] if id and key @current_user = User.authenticate_by_token(id, key) session[:user_id] = @current_user ? @current_user.id : nil return true if not @current_user.nil? end # Everything failed return false end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
backlog-0.0.4 | lib/user_system.rb |
backlog-0.0.5 | lib/user_system.rb |
backlog-0.1.1 | lib/user_system.rb |
backlog-0.1.0 | lib/user_system.rb |