Univention Bugzilla – Attachment 8835 Details for
Bug 44350
workgroup wizard cannot remove users from a workgroup
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
patch
44350.patch (text/plain), 2.68 KB, created by
Florian Best
on 2017-05-10 14:15:14 CEST
(
hide
)
Description:
patch
Filename:
MIME Type:
Creator:
Florian Best
Created:
2017-05-10 14:15:14 CEST
Size:
2.68 KB
patch
obsolete
>diff --git a/ucs-school-umc-groups/umc/python/schoolgroups/__init__.py b/ucs-school-umc-groups/umc/python/schoolgroups/__init__.py >index cf645c4..f3eddae 100644 >--- a/ucs-school-umc-groups/umc/python/schoolgroups/__init__.py >+++ b/ucs-school-umc-groups/umc/python/schoolgroups/__init__.py >@@ -120,8 +120,13 @@ def get(self, request, ldap_user_read=None, ldap_position=None): > self.finished(request.id, [result]) > return > >+ result['members'] = self._get_members(request, group, result.pop('users', []), ldap_user_read) >+ >+ self.finished(request.id, [result, ]) >+ >+ def _get_members(self, request, group, users, ldap_user_read=None): > members = [] >- for member_dn in result.pop('users', []): >+ for member_dn in users: > try: > user = User.from_dn(member_dn, None, ldap_user_read) > except udm_exceptions.noObject: >@@ -136,9 +141,7 @@ def get(self, request, ldap_user_read=None, ldap_position=None): > elif request.flavor == 'workgroup-admin' and not user.is_student(ldap_user_read) and not user.is_administrator(ldap_user_read) and not user.is_staff(ldap_user_read) and not user.is_teacher(ldap_user_read): > continue # only display school users > members.append({'id': user.dn, 'label': Display.user(user.get_udm_object(ldap_user_read))}) >- result['members'] = members >- >- self.finished(request.id, [result, ]) >+ return members > > @sanitize(DictSanitizer(dict(object=DictSanitizer({}, required=True)))) > @LDAP_Connection(USER_READ, MACHINE_WRITE) >@@ -165,8 +168,12 @@ def put(self, request, ldap_machine_write=None, ldap_user_read=None, ldap_positi > except udm_exceptions.noObject: > raise UMC_Error('unknown group object') > >+ old_members = self._get_members(request, group_from_ldap, group_from_ldap.users, ldap_user_read) >+ removed_members = set(old_members) - set(group_from_umc['members']) >+ > MODULE.info('Modifying group "%s" with members: %s' % (group_from_ldap.dn, group_from_ldap.users)) > MODULE.info('New members: %s' % group_from_umc['members']) >+ MODULE.info('Removed members: %s' % (removed_members,)) > > if request.flavor == 'workgroup-admin': > # do not allow groups to be renamed in order to avoid conflicts with shares >@@ -208,7 +215,7 @@ def put(self, request, ldap_machine_write=None, ldap_user_read=None, ldap_positi > raise UMC_Error(_('User %s is not a student.') % (Display.user(user.get_udm_object(ldap_machine_write)),)) > users.append(user.dn) > >- group_from_ldap.users = list(set(users).intersection(set(group_from_umc['members']))) # remove removed users >+ group_from_ldap.users = list(set(users) - removed_members) > try: > success = group_from_ldap.modify(ldap_machine_write) > MODULE.info('Modified, group has now members: %s' % (group_from_ldap.users,))
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 44350
: 8835 |
8867