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_user ⇒ Object
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 login 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_status ⇒ Object
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_user ⇒ Object
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
|