Module: Entrance::Controller
- Defined in:
- lib/entrance/controller.rb
Defined Under Namespace
Modules: ClassMethods
Constant Summary collapse
- REMEMBER_ME_TOKEN =
'auth_token'.freeze
Class Method Summary collapse
Instance Method Summary collapse
- #authenticate_and_login(username, password, remember_me = false) ⇒ Object
- #current_user ⇒ Object
- #logged_in? ⇒ Boolean
- #logged_out? ⇒ Boolean
- #login!(user, remember_me = false) ⇒ Object
- #login_required(opts = {}) ⇒ Object
- #logout! ⇒ Object
Class Method Details
.included(base) ⇒ Object
16 17 18 19 |
# File 'lib/entrance/controller.rb', line 16 def self.included(base) base.send(:helper_method, :current_user, :logged_in?, :logged_out?) if base.respond_to?(:helper_method) base.extend(ClassMethods) end |
Instance Method Details
#authenticate_and_login(username, password, remember_me = false) ⇒ Object
21 22 23 24 25 26 27 |
# File 'lib/entrance/controller.rb', line 21 def authenticate_and_login(username, password, remember_me = false) if user = Entrance.model.authenticate(username, password) \ and (!user.respond_to?(:can_login?) || user.can_login?) login!(user, remember_me) user end end |
#current_user ⇒ Object
48 49 50 |
# File 'lib/entrance/controller.rb', line 48 def current_user @current_user ||= (login_from_session || ) end |
#logged_in? ⇒ Boolean
52 53 54 |
# File 'lib/entrance/controller.rb', line 52 def logged_in? !!current_user end |
#logged_out? ⇒ Boolean
56 57 58 |
# File 'lib/entrance/controller.rb', line 56 def logged_out? !logged_in? end |
#login!(user, remember_me = false) ⇒ Object
29 30 31 32 |
# File 'lib/entrance/controller.rb', line 29 def login!(user, remember_me = false) self.current_user = user remember_or_forget(remember_me) if Entrance.config.can?(:remember) end |
#login_required(opts = {}) ⇒ Object
42 43 44 45 46 |
# File 'lib/entrance/controller.rb', line 42 def login_required(opts = {}) allowed = (opts[:except] || []) + self.class.allow_paths return if allowed.any? and allowed.include?(request.path_info) logged_in? || access_denied end |