Sha256: 18065ee3dcf3cc18887863e76e88d38575561ce9d79a0176af80ae7eaf305a69
Contents?: true
Size: 1.34 KB
Versions: 2
Compression:
Stored size: 1.34 KB
Contents
module Authorizme module ForControllers extend ActiveSupport::Concern included do end module ClassMethods def require_user params = nil before_filter :require_user, params end end def current_user return @current_user if defined? @current_users @current_user ||= User.find session[:user_id] if session[:user_id] end def login user if current_user SynchronizeRequest.create!({user: current_user, requested_user: user}) else session[:user_id] = user.id end end def run_require_user unless current_user not_logged_in_status end end def method_missing(meth, *args, &block) if meth.to_s =~ /^require_(.+)$/ if $1 == "user" run_require_user else run_require_role($1, *args, &block) end else super end end def run_require_role(role, *args, &block) unless current_user && current_user.role.name == role not_logged_in_status end end def not_logged_in_status if Authorizme::remote status = {status: "not_logged_in"} respond_with status else redirect_to "/#{Authorizme::namespace}/" end end end end ActionController::Base.send :include, Authorizme::ForControllers
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
authorizme-0.0.5 | lib/authorizme/for_controllers.rb |
authorizme-0.0.4 | lib/authorizme/for_controllers.rb |