Class: Pebblebed::Security::RoleSchema
- Inherits:
-
Object
- Object
- Pebblebed::Security::RoleSchema
- Defined in:
- lib/pebblebed/security/role_schema.rb
Defined Under Namespace
Classes: UndefinedRole
Class Attribute Summary collapse
-
.roles ⇒ Object
readonly
Returns the value of attribute roles.
Instance Attribute Summary collapse
-
#connector ⇒ Object
readonly
Returns the value of attribute connector.
-
#identity ⇒ Object
readonly
Returns the value of attribute identity.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(connector, identity) ⇒ RoleSchema
constructor
A new instance of RoleSchema.
- #role ⇒ Object
Constructor Details
#initialize(connector, identity) ⇒ RoleSchema
Returns a new instance of RoleSchema.
13 14 15 16 17 |
# File 'lib/pebblebed/security/role_schema.rb', line 13 def initialize(connector, identity) @connector = connector @identity = identity @role = find_current_role end |
Class Attribute Details
.roles ⇒ Object (readonly)
Returns the value of attribute roles.
10 11 12 |
# File 'lib/pebblebed/security/role_schema.rb', line 10 def roles @roles end |
Instance Attribute Details
#connector ⇒ Object (readonly)
Returns the value of attribute connector.
7 8 9 |
# File 'lib/pebblebed/security/role_schema.rb', line 7 def connector @connector end |
#identity ⇒ Object (readonly)
Returns the value of attribute identity.
7 8 9 |
# File 'lib/pebblebed/security/role_schema.rb', line 7 def identity @identity end |
Class Method Details
.requirements_for_role(role) ⇒ Object
27 28 29 30 31 |
# File 'lib/pebblebed/security/role_schema.rb', line 27 def self.requirements_for_role(role) the_role = @roles.select {|r| r[:name] == role.to_sym }.first raise UndefinedRole, "The role :#{role} is not defined." unless the_role @roles[0..@roles.index(the_role)].map{|r| r[:requirements]}.flatten.uniq.compact end |
.role(name, options) ⇒ Object
33 34 35 36 37 38 39 |
# File 'lib/pebblebed/security/role_schema.rb', line 33 def self.role(name, ) @roles ||= [] @role_rank_level ||= 0 @roles << .merge(:name => name, :role_rank => @role_rank_level) @roles.sort!{|a,b| a[:role_rank] <=> b[:role_rank]} @role_rank_level += 1 end |
Instance Method Details
#role ⇒ Object
19 20 21 22 23 24 25 |
# File 'lib/pebblebed/security/role_schema.rb', line 19 def role { :current => @role[:name], :capabilities => @role[:capabilities], :upgrades => @role[:upgrades] } end |