Module: Authorizme::ForControllers

Extended by:
ActiveSupport::Concern
Defined in:
lib/authorizme/for_controllers.rb

Defined Under Namespace

Modules: ClassMethods

Instance Method Summary collapse

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(meth, *args, &block) ⇒ Object



40
41
42
43
44
45
46
47
48
49
50
# File 'lib/authorizme/for_controllers.rb', line 40

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

Instance Method Details

#current_userObject



14
15
16
17
# File 'lib/authorizme/for_controllers.rb', line 14

def current_user
  return @current_user if defined? @current_users
  @current_user ||= User.find session[:user_id] if session[:user_id] && session[:user_id] != nil
end

#login(user) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/authorizme/for_controllers.rb', line 19

def  user
  if current_user && current_user.id != user.id
    if session[:synchronize]
      SynchronizeRequest.create!({user: current_user, requested_user: user, status: "accepted"})
      current_user.synchronize user
      session[:synchronize] = nil
    else
      SynchronizeRequest.create!({user: current_user, requested_user: user})
    end
  else
    session[:user_id] = user.id
  end
  user.on_logged_in
end

#not_logged_in_statusObject



58
59
60
61
# File 'lib/authorizme/for_controllers.rb', line 58

def not_logged_in_status
  status = {status: "not_logged_in"}
  respond_with status, :location => "/#{Authorizme::namespace}/"
end

#run_require_role(role, *args, &block) ⇒ Object



52
53
54
55
56
# File 'lib/authorizme/for_controllers.rb', line 52

def run_require_role(role, *args, &block)
  unless current_user && current_user.role.name == role
    not_logged_in_status
  end
end

#run_require_userObject



34
35
36
37
38
# File 'lib/authorizme/for_controllers.rb', line 34

def run_require_user
  unless current_user
    not_logged_in_status
  end
end