Module: Bsm::Sso::Client::Ability::ClassMethods
- Defined in:
- lib/bsm/sso/client/ability.rb
Instance Method Summary collapse
-
#as(scope, name, &block) ⇒ Object
Ability definition helper.
-
#roles ⇒ Hash
Roles, scoped by user type.
Instance Method Details
#as(scope, name, &block) ⇒ Object
Ability definition helper
32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/bsm/sso/client/ability.rb', line 32 def as(scope, name, &block) method_name = :"as__#{scope}__#{name}" define_method(method_name) do return false if self.scope != scope || applied.include?(name.to_s) applied.add(name.to_s) instance_eval(&block) true end private method_name end |
#roles ⇒ Hash
Returns roles, scoped by user type.
18 19 20 21 22 23 24 25 26 27 |
# File 'lib/bsm/sso/client/ability.rb', line 18 def roles private_instance_methods(false).inject({}) do |result, name| prefix, scope, name = name.to_s.split('__') next result unless prefix == "as" && scope && name result[scope.to_sym] ||= [] result[scope.to_sym] << name result end end |