Class: Maglev::Authorization
- Inherits:
-
Object
- Object
- Maglev::Authorization
- Defined in:
- lib/maglev/authorization.rb
Instance Method Summary collapse
- #authorize(record:, user:) ⇒ Object
- #authorized?(record:, user:) ⇒ Boolean
- #configured? ⇒ Boolean
-
#initialize(adapter: Maglev.configuration.authorization_adapter) ⇒ Authorization
constructor
A new instance of Authorization.
- #scope(model:, user:) ⇒ Object
Constructor Details
#initialize(adapter: Maglev.configuration.authorization_adapter) ⇒ Authorization
Returns a new instance of Authorization.
8 9 10 |
# File 'lib/maglev/authorization.rb', line 8 def initialize(adapter: Maglev.configuration.) @adapter = adapter end |
Instance Method Details
#authorize(record:, user:) ⇒ Object
22 23 24 25 26 27 28 29 |
# File 'lib/maglev/authorization.rb', line 22 def (record:, user:) return true unless configured? && user result = @adapter.(record: record, user: user) raise AuthorizationError, "Maglev authorization denied #{record.class.name}##{record_id(record)}" if result == false true end |
#authorized?(record:, user:) ⇒ Boolean
31 32 33 34 35 |
# File 'lib/maglev/authorization.rb', line 31 def (record:, user:) (record: record, user: user) rescue AuthorizationError false end |
#configured? ⇒ Boolean
12 13 14 |
# File 'lib/maglev/authorization.rb', line 12 def configured? !@adapter.nil? end |
#scope(model:, user:) ⇒ Object
16 17 18 19 20 |
# File 'lib/maglev/authorization.rb', line 16 def scope(model:, user:) return model.all unless configured? && user @adapter.scope(model: model, user: user) end |