Module: TurboChat::Configuration::RoleSupport
- Included in:
- TurboChat::Configuration
- Defined in:
- lib/turbo_chat/configuration/role_support.rb
Instance Method Summary collapse
- #add_role(key, name:, permissions:, rank: 0) ⇒ Object
- #additional_roles ⇒ Object
- #clear_additional_roles! ⇒ Object
- #remove_role(key) ⇒ Object
- #role_definition(key) ⇒ Object
- #role_definitions ⇒ Object
Instance Method Details
#add_role(key, name:, permissions:, rank: 0) ⇒ Object
3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
# File 'lib/turbo_chat/configuration/role_support.rb', line 3 def add_role(key, name:, permissions:, rank: 0) normalized_key = normalize_role_key(key) raise ArgumentError, "Role key cannot be blank" if normalized_key.blank? raise ArgumentError, "Role #{normalized_key} is reserved" if DEFAULT_ROLE_DEFINITIONS.key?(normalized_key) role_name = name.to_s.strip raise ArgumentError, "Role name cannot be blank" if role_name.blank? @additional_roles[normalized_key] = { name: role_name, rank: rank.to_i, permissions: Array().map { || .to_sym }.uniq } end |
#additional_roles ⇒ Object
22 |
# File 'lib/turbo_chat/configuration/role_support.rb', line 22 def additional_roles = @additional_roles.dup |
#clear_additional_roles! ⇒ Object
20 |
# File 'lib/turbo_chat/configuration/role_support.rb', line 20 def clear_additional_roles! = @additional_roles = {} |
#remove_role(key) ⇒ Object
18 |
# File 'lib/turbo_chat/configuration/role_support.rb', line 18 def remove_role(key) = @additional_roles.delete(normalize_role_key(key)) |
#role_definition(key) ⇒ Object
26 |
# File 'lib/turbo_chat/configuration/role_support.rb', line 26 def role_definition(key) = role_definitions[normalize_role_key(key)] |
#role_definitions ⇒ Object
24 |
# File 'lib/turbo_chat/configuration/role_support.rb', line 24 def role_definitions = DEFAULT_ROLE_DEFINITIONS.merge(@additional_roles) |