Déplacement pour eggification.
[Plinn.git] / 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 (executable)
index 0000000..f45c471
--- /dev/null
@@ -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