Module: RulesEngine::ControllerUsers
- Defined in:
- lib/rules_engine/controller_users.rb
Defined Under Namespace
Modules: ClassMethods
Constant Summary collapse
- USER_ACCESS_LEVEL =
Requires the following paths root_path
[ ["Administrator", User::ACCESS_LEVEL_ADMIN], ["Account Disabled", User::ACCESS_LEVEL_DISABLED] ]
Class Method Summary collapse
-
.included(base) ⇒ Object
Inclusion hook to make #current_user #logged_in? and #logged_in_as_admin? available as ActionView helper methods.
Instance Method Summary collapse
- #admin_access_required ⇒ Object
- #can_signup? ⇒ Boolean
-
#current_user ⇒ Object
Accesses the current user from the session.
-
#logged_in? ⇒ Boolean
Returns true or false if the user is logged in.
- #logged_in_as_admin? ⇒ Boolean
- #logged_in_disabled? ⇒ Boolean
- #login_required ⇒ Object
- #set_timezone ⇒ Object
- #user_access_level(user) ⇒ Object
- #user_access_levels ⇒ Object
Class Method Details
.included(base) ⇒ Object
Inclusion hook to make #current_user #logged_in? and #logged_in_as_admin? available as ActionView helper methods.
13 14 15 16 17 18 19 20 |
# File 'lib/rules_engine/controller_users.rb', line 13 def self.included(base) base.send :helper_method, :current_user, :logged_in?, :logged_in_as_admin?, :logged_in_disabled?, :user_access_level, :user_access_levels, :can_signup? base.send :before_filter, :set_timezone base.class_eval do extend ClassMethods end end |
Instance Method Details
#admin_access_required ⇒ Object
51 52 53 54 55 56 57 58 |
# File 'lib/rules_engine/controller_users.rb', line 51 def admin_access_required login_required return unless logged_in? unless current_user.access_level == User::ACCESS_LEVEL_ADMIN flash[:error]="This page requires administrator access" user_access_denied end end |
#can_signup? ⇒ Boolean
73 74 75 |
# File 'lib/rules_engine/controller_users.rb', line 73 def can_signup? ActionController::Base.can_signup? end |
#current_user ⇒ Object
Accesses the current user from the session. Future calls avoid the database because nil is not equal to false.
24 25 26 27 28 |
# File 'lib/rules_engine/controller_users.rb', line 24 def current_user return nil if @current_user == false @current_user || (login_from_session || login_from_basic_auth || ) @current_user || nil end |
#logged_in? ⇒ Boolean
Returns true or false if the user is logged in. Preloads @current_user with the user model if they’re logged in.
32 33 34 |
# File 'lib/rules_engine/controller_users.rb', line 32 def logged_in? !!current_user end |
#logged_in_as_admin? ⇒ Boolean
36 37 38 |
# File 'lib/rules_engine/controller_users.rb', line 36 def logged_in_as_admin? logged_in? && current_user.access_level == User::ACCESS_LEVEL_ADMIN end |
#logged_in_disabled? ⇒ Boolean
40 41 42 |
# File 'lib/rules_engine/controller_users.rb', line 40 def logged_in_disabled? logged_in? && current_user.access_level == User::ACCESS_LEVEL_DISABLED end |
#login_required ⇒ Object
44 45 46 47 48 49 |
# File 'lib/rules_engine/controller_users.rb', line 44 def login_required unless logged_in? flash[:error]="This page requires you to login" access_denied end end |
#set_timezone ⇒ Object
69 70 71 |
# File 'lib/rules_engine/controller_users.rb', line 69 def set_timezone Time.zone = logged_in? ? current_user.time_zone : "Eastern Time (US & Canada)" end |
#user_access_level(user) ⇒ Object
60 61 62 63 |
# File 'lib/rules_engine/controller_users.rb', line 60 def user_access_level(user) match = USER_ACCESS_LEVEL.find {|value| value[1] == user.access_level} match.nil? ? "unknown" : match[0] end |
#user_access_levels ⇒ Object
65 66 67 |
# File 'lib/rules_engine/controller_users.rb', line 65 def user_access_levels USER_ACCESS_LEVEL.sort {|a, b| a[1] <=> b[1]} end |