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

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 (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_userObject



48
49
50
# File 'lib/entrance/controller.rb', line 48

def current_user
  @current_user ||= ( || )
end

#logged_in?Boolean

Returns:

  • (Boolean)


52
53
54
# File 'lib/entrance/controller.rb', line 52

def logged_in?
  !!current_user
end

#logged_out?Boolean

Returns:

  • (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 (opts = {})
  allowed = (opts[:except] || []) + self.class.allow_paths
  return if allowed.any? and allowed.include?(request.path_info)
  logged_in? || access_denied
end

#logout!Object



34
35
36
37
38
39
40
# File 'lib/entrance/controller.rb', line 34

def logout!
  if logged_in?
    current_user.forget_me! if Entrance.config.can?(:remember)
    self.current_user = nil
  end
  delete_remember_cookie if Entrance.config.can?(:remember)
end