Changeset c8cb9ba for asadb/util/sync_moira_authz.py
- Timestamp:
- Dec 23, 2011, 12:01:31 AM (14 years ago)
- Branches:
- master, space-access, stable, stage
- Children:
- d7dcfee
- Parents:
- ac1d897
- git-author:
- Alex Dehnert <adehnert@…> (12/23/11 00:00:02)
- git-committer:
- Alex Dehnert <adehnert@…> (12/23/11 00:01:31)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
asadb/util/sync_moira_authz.py
rac1d897 rc8cb9ba 24 24 self.dj_groups = django.contrib.auth.models.Group.objects 25 25 26 def sync_ members(self, sys_name, dj_name, ):26 def sync_helper(self, sys_name, dj_members, adder, remover, ): 27 27 kept = [] 28 28 added = [] … … 31 31 removed = [] 32 32 sys_members = self.get_members(sys_name) 33 dj_group = self.dj_groups.get(name=dj_name)34 dj_members = dj_group.user_set.all()35 33 dj_usernames = set([m.username for m in dj_members]) 36 34 for username in sys_members: … … 42 40 user, is_new = mit.get_or_create_mit_user(username, ) 43 41 if is_new: created.append(username) 44 user.groups.add(dj_group)42 adder(user) 45 43 added.append(username) 46 44 except ValueError: … … 51 49 assert username in kept 52 50 else: 53 user.groups.remove(dj_group)51 remover(user) 54 52 removed.append(username) 55 53 return { … … 62 60 } 63 61 62 def sync_staff(self, sys_name, ): 63 dj_members = django.contrib.auth.models.User.objects.filter(is_staff=True, ) 64 def adder(user, ): 65 user.is_staff = True 66 user.save() 67 def remover(user, ): 68 user.is_staff = False 69 user.save() 70 return self.sync_helper(sys_name, dj_members, adder, remover, ) 71 72 def sync_members(self, sys_name, dj_name, ): 73 dj_group = self.dj_groups.get(name=dj_name) 74 dj_members = dj_group.user_set.all() 75 adder = lambda user: user.groups.add(dj_group) 76 remover = lambda user: user.groups.remove(dj_group) 77 return self.sync_helper(sys_name, dj_members, adder, remover, ) 78 64 79 def sync_many(con, what, force_print=False, ): 65 80 changed = False … … 67 82 for sys_name, dj_group in what: 68 83 assert dj_group not in results 69 results[dj_group] = con_afs.sync_members(sys_name, dj_group) 84 if dj_group == "STAFF": 85 results[dj_group] = con_afs.sync_staff(sys_name, ) 86 else: 87 results[dj_group] = con_afs.sync_members(sys_name, dj_group) 70 88 if results[dj_group]['change']: changed = True 71 89 if changed or force_print: … … 129 147 130 148 sync_pairs = [ 149 ('asa-admin', 'STAFF', ), 131 150 ('asa-admin', 'asa-ebm', ), 132 151 ('asa-db-mit-deskworker', 'mit-deskworker', ),
Note: See TracChangeset
for help on using the changeset viewer.