Module: Kojac
- Extended by:
- ActiveSupport::Concern
- Defined in:
- lib/kojac/kojac_policy.rb,
lib/kojac.rb,
lib/kojac/version.rb,
lib/kojac/kojac_rails.rb,
lib/kojac/kojac_rails.rb
Overview
require “active_support/core_ext/object/blank”
Defined Under Namespace
Modules: ControllerOpMethods, ModelMethods, Rails
Classes: NotFoundError
Constant Summary
collapse
- VERSION =
"0.11.0"
Class Method Summary
collapse
Instance Method Summary
collapse
Class Method Details
.policy(user, record, op = nil) ⇒ Object
23
24
25
26
|
# File 'lib/kojac/kojac_policy.rb', line 23
def policy(user, record, op=nil)
scope = Pundit::PolicyFinder.new(record).policy
scope.new(user, record, op) if scope
end
|
.policy!(user, record, op = nil) ⇒ Object
28
29
30
|
# File 'lib/kojac/kojac_policy.rb', line 28
def policy!(user, record, op=nil)
Pundit::PolicyFinder.new(record).policy!.new(user, record, op)
end
|
.policy_scope(user, scope, op = nil) ⇒ Object
14
15
16
17
|
# File 'lib/kojac/kojac_policy.rb', line 14
def policy_scope(user, scope, op=nil)
policy = Pundit::PolicyFinder.new(scope).scope
policy.new(user, scope, op).resolve if policy
end
|
.policy_scope!(user, scope, op = nil) ⇒ Object
19
20
21
|
# File 'lib/kojac/kojac_policy.rb', line 19
def policy_scope!(user, scope, op=nil)
Pundit::PolicyFinder.new(scope).scope!.new(user, scope, op).resolve
end
|
Instance Method Details
#authorize(record, query = nil) ⇒ Object
53
54
55
56
57
58
59
60
|
# File 'lib/kojac/kojac_policy.rb', line 53
def authorize(record, query=nil)
query ||= params[:action].to_s + "?"
@_policy_authorized = true
unless policy(record).public_send(query)
raise NotAuthorizedError, "not allowed to #{query} this #{record}"
end
true
end
|
#policy(record) ⇒ Object
67
68
69
|
# File 'lib/kojac/kojac_policy.rb', line 67
def policy(record)
Pundit::Pundit.policy!(current_user, record, op)
end
|
#policy_scope(scope) ⇒ Object
62
63
64
65
|
# File 'lib/kojac/kojac_policy.rb', line 62
def policy_scope(scope)
@_policy_scoped = true
Pundit::Pundit.policy_scope!(current_user, scope, op)
end
|
#verify_authorized ⇒ Object
45
46
47
|
# File 'lib/kojac/kojac_policy.rb', line 45
def verify_authorized
raise NotAuthorizedError unless @_policy_authorized
end
|
#verify_policy_scoped ⇒ Object
49
50
51
|
# File 'lib/kojac/kojac_policy.rb', line 49
def verify_policy_scoped
raise NotAuthorizedError unless @_policy_scoped
end
|