| 152 | |
| 153 | |
| 154 | def create_group_provider(user_groups, authenticator, admin_users): |
| 155 | if admin_users: |
| 156 | admin_users = _exclude_unknown_groups_from_admin_users(admin_users, user_groups) |
| 157 | if user_groups is None: |
| 158 | user_groups = {ADMIN_GROUP: admin_users} |
| 159 | elif ADMIN_GROUP not in user_groups: |
| 160 | user_groups[ADMIN_GROUP] = admin_users |
| 161 | |
| 162 | if not user_groups: |
| 163 | if authenticator: |
| 164 | return authenticator |
| 165 | return EmptyGroupProvider() |
| 166 | |
| 167 | preconfigured_groups_provider = PreconfiguredGroupProvider(user_groups) |
| 168 | if not authenticator: |
| 169 | return preconfigured_groups_provider |
| 170 | |
| 171 | return CombinedGroupProvider(authenticator, preconfigured_groups_provider) |
| 172 | |
| 173 | |
| 174 | # in case groups will be loaded from ldap |