Module: LcpRuby::Groups::Contract
- Included in:
- HostLoader, ModelLoader, YamlLoader
- Defined in:
- lib/lcp_ruby/groups/contract.rb
Overview
Interface module that defines the contract for group loaders. Included by YamlLoader, ModelLoader, and HostLoader.
Instance Method Summary collapse
-
#all_group_names ⇒ Array<String>
Returns all known group names.
-
#groups_for_user(user) ⇒ Array<String>
Returns group names the given user belongs to.
-
#roles_for_group(group_name) ⇒ Array<String>
Returns role names mapped to the given group.
-
#roles_for_user(user) ⇒ Array<String>
Returns all roles derived from a user’s group memberships.
-
#user_ids_for_group(group_name) ⇒ Array<Integer>
Returns user IDs that belong to the given group.
Instance Method Details
#all_group_names ⇒ Array<String>
Returns all known group names.
8 9 10 |
# File 'lib/lcp_ruby/groups/contract.rb', line 8 def all_group_names raise NotImplementedError, "#{self.class}#all_group_names must be implemented" end |
#groups_for_user(user) ⇒ Array<String>
Returns group names the given user belongs to.
15 16 17 |
# File 'lib/lcp_ruby/groups/contract.rb', line 15 def groups_for_user(user) raise NotImplementedError, "#{self.class}#groups_for_user must be implemented" end |
#roles_for_group(group_name) ⇒ Array<String>
Returns role names mapped to the given group.
22 23 24 |
# File 'lib/lcp_ruby/groups/contract.rb', line 22 def roles_for_group(group_name) raise NotImplementedError, "#{self.class}#roles_for_group must be implemented" end |
#roles_for_user(user) ⇒ Array<String>
Returns all roles derived from a user’s group memberships. Default implementation composes groups_for_user + roles_for_group.
30 31 32 |
# File 'lib/lcp_ruby/groups/contract.rb', line 30 def roles_for_user(user) groups_for_user(user).flat_map { |g| roles_for_group(g) }.uniq end |
#user_ids_for_group(group_name) ⇒ Array<Integer>
Returns user IDs that belong to the given group.
37 38 39 |
# File 'lib/lcp_ruby/groups/contract.rb', line 37 def user_ids_for_group(group_name) raise NotImplementedError, "#{self.class}#user_ids_for_group must be implemented" end |