X-Git-Url: https://scm.cri.minesparis.psl.eu/git/Plinn.git/blobdiff_plain/3c4367d8e03450e9a73e61f4247145d2b6c86a33..959d888c17d1403d2eeecc19bc4b5e2c8d1debf6:/Products/Plinn/skins/generic/getAllMembersInRole.py diff --git a/Products/Plinn/skins/generic/getAllMembersInRole.py b/Products/Plinn/skins/generic/getAllMembersInRole.py new file mode 100755 index 0000000..f45c471 --- /dev/null +++ b/Products/Plinn/skins/generic/getAllMembersInRole.py @@ -0,0 +1,30 @@ +##parameters=role + +usersAndGroups = context.users_with_local_role(role) +aclu = context.aq_inner.acl_users +prefix = aclu.getGroupPrefix() +mtool = context.portal_membership + +users = [] +groups = [] + +for uOrG in usersAndGroups : + if uOrG.startswith(prefix) : + groups.append(uOrG) + else : + users.append(uOrG) + +gtool = context.portal_groups +usersFromGroups = [] +for group in groups : + usersFromGroups.extend(gtool.getUserNamesOfGroup(group, no_recurse = 0)) + +allUsersDbl = users +allUsersDbl.extend(usersFromGroups) +allUsers = [] +for user in allUsersDbl : + if user not in allUsers : + allUsers.append(user) + +allMembers = mtool.getMembers(allUsers) +return allMembers \ No newline at end of file