Skip to content

Commit 5425937

Browse files
committed
support list of sign groups in sign group mapping
1 parent 57fccf2 commit 5425937

File tree

1 file changed

+9
-8
lines changed

1 file changed

+9
-8
lines changed

user_sync/config/sign_sync.py

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ def config_schema() -> Schema:
3636
},
3737
'user_management': [{
3838
'directory_group': Or(None, And(str, len)),
39-
Optional('sign_group', default=None): Or(None, And(str, len)),
39+
Optional('sign_group', default=None): Or(None, list, And(str, len)),
4040
Optional('group_admin', default=False): Or(bool, None),
4141
Optional('account_admin', default=False): Or(bool, None)
4242
}],
@@ -167,12 +167,13 @@ def load_directory_groups(self) -> Dict[str, AdobeGroup]:
167167
'groups': [],
168168
}
169169

170-
sign_group = mapping.get_string('sign_group', True)
171-
if sign_group is not None:
172-
170+
sign_group = mapping.get_list('sign_group', True)
171+
if sign_group is None:
172+
continue
173+
for sg in sign_group:
173174
# AdobeGroup will return the same memory instance of a pre-existing group,
174175
# so we create it no matter what
175-
group = AdobeGroup.create(sign_group)
176+
group = AdobeGroup.create(sg)
176177
if group is None:
177178
raise AssertionException('Bad Sign group: "{}" in directory group: "{}"'.format(sign_group, dir_group))
178179
if group.umapi_name is None:
@@ -210,18 +211,18 @@ def load_group_admin_mappings(self):
210211
group_config = self.main_config.get_list_config('user_management', True)
211212
for mapping in group_config.iter_dict_configs():
212213
dir_group = mapping.get_string('directory_group')
213-
sign_group = mapping.get_string('sign_group', True)
214+
sign_group = mapping.get_list('sign_group', True)
214215

215216
group_admin = mapping.get_bool('group_admin', True)
216-
if sign_group is None:
217+
if sign_group is None or not len(sign_group):
217218
# if there is no Sign group, add the directory group anyway
218219
# in case we're non-UMG, in which case the group admin status is
219220
# applied to the user's currently-assigned group
220221
if group_admin:
221222
group_admin_mappings[dir_group] = set()
222223
continue
223224

224-
group = AdobeGroup.create(sign_group)
225+
group = AdobeGroup.create(sign_group[0])
225226
if group is None:
226227
raise AssertionException('Bad Sign group: "{}" in directory group: "{}"'.format(sign_group, dir_group))
227228
if group.umapi_name is None:

0 commit comments

Comments
 (0)