Module: Sand
- Defined in:
- lib/sand.rb,
lib/sand/util.rb,
lib/sand/helpers.rb,
lib/sand/version.rb,
lib/sand/middleware.rb,
lib/sand/policy_finder.rb
Defined Under Namespace
Modules: Helpers, Util
Classes: AuthorizationNotPerformed, Error, Middleware, NotAuthorizedError, NotDefinedError, PolicyFinder, RequestMethods, ScopeNotPerformed
Constant Summary
collapse
- VERSION =
'0.1.2'.freeze
Class Method Summary
collapse
Class Method Details
.authorize(user, record, query) ⇒ Object
25
26
27
28
29
30
31
32
33
|
# File 'lib/sand.rb', line 25
def self.authorize(user, record, query)
policy = policy!(user, record)
unless policy.public_send(query)
raise NotAuthorizedError.new(policy: policy, record: record, query: query) end
true
end
|
.policy!(user, record) ⇒ Object
35
36
37
38
|
# File 'lib/sand.rb', line 35
def self.policy!(user, record)
policy = PolicyFinder.new(record).policy!
policy.new(user, record)
end
|
.policy_scope(user, scope) ⇒ Object
40
41
42
43
|
# File 'lib/sand.rb', line 40
def self.policy_scope(user, scope)
policy_scope = PolicyFinder.new(scope).scope!
policy_scope.new(user, scope).resolve
end
|