Class: Symphonia::Role
- Inherits:
-
ApplicationRecord
- Object
- ActiveRecord::Base
- ApplicationRecord
- Symphonia::Role
- Includes:
- ModelAttributes
- Defined in:
- app/models/symphonia/role.rb
Instance Method Summary collapse
- #allowed_permissions ⇒ Object
-
#allowed_to?(permission) ⇒ Boolean
after_save :expire_cache.
- #authorize?(controller, action) ⇒ Boolean
- #permission_names ⇒ Object
Methods inherited from ApplicationRecord
Instance Method Details
#allowed_permissions ⇒ Object
32 33 34 35 36 37 38 39 40 |
# File 'app/models/symphonia/role.rb', line 32 def return @allowed_permissions if @allowed_permissions @allowed_permissions = .collect do |i| i.is_a?(Symphonia::Permissions::Permission) ? i : Symphonia::Permissions.get(i.to_sym) end.compact @allowed_permissions end |
#allowed_to?(permission) ⇒ Boolean
after_save :expire_cache
20 21 22 23 24 |
# File 'app/models/symphonia/role.rb', line 20 def allowed_to?() Rails.cache.fetch([self, ]) do !.detect { |i| .to_sym == i.name }.nil? end end |
#authorize?(controller, action) ⇒ Boolean
26 27 28 29 30 |
# File 'app/models/symphonia/role.rb', line 26 def (controller, action) Rails.cache.fetch([self, controller, action]) do !.detect { |p| p.allowed?(controller, action) }.nil? end end |
#permission_names ⇒ Object
42 43 44 |
# File 'app/models/symphonia/role.rb', line 42 def #.map(&:name) end |