MCPcopy Index your code
hub / github.com/bugy/script-server / PreconfiguredGroupProvider

Class PreconfiguredGroupProvider

src/auth/authorization.py:108–131  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

106
107
108class PreconfiguredGroupProvider:
109
110 def __init__(self, groups) -> None:
111 self._user_groups = defaultdict(list)
112 self._lazy_group_parents = defaultdict(list)
113
114 flat_groups = _flatten_groups(groups)
115 for group, members in flat_groups.items():
116 for member in members:
117 if member.startswith(GROUP_PREFIX):
118 self._lazy_group_parents[member[1:]].append(group)
119 else:
120 self._user_groups[_normalize_user(member)].append(group)
121
122 def get_groups(self, user, known_groups=None):
123 user_groups = set(self._user_groups[_normalize_user(user)])
124
125 if known_groups:
126 for known_group in known_groups:
127 if known_group in self._lazy_group_parents:
128 parent_groups = self._lazy_group_parents[known_group]
129 user_groups.update(parent_groups)
130
131 return user_groups
132
133
134class CombinedGroupProvider:

Calls

no outgoing calls