transaction = ctx.current.create_transaction()
- print repr(ctx), repr(ctx.current), repr(transaction)
- # Remove existing machine access entries
- machine_access_table.delete()
- ctx.current.flush()
-
try:
machines = Machine.select()
for m in machines:
people.update(expandLocker(m.owner))
people.update(expandName(m.administrator))
print '%s: %s' % (m.name, ' '.join(people))
- for p in people:
+ old_people = set(a.user for a in m.acl)
+ for removed in old_people - people:
+ ma = [x for x in m.acl if x.user == removed][0]
+ ctx.current.delete(ma)
+ for p in people - old_people:
ma = MachineAccess(machine_id=m.machine_id, user=p)
ctx.current.save(ma)
ctx.current.flush()