|
a/Allura/allura/ext/admin/admin_main.py |
|
b/Allura/allura/ext/admin/admin_main.py |
|
... |
|
... |
508 |
@require_post()
|
508 |
@require_post()
|
509 |
def update(self, card=None, **kw):
|
509 |
def update(self, card=None, **kw):
|
510 |
permissions = self._index_permissions()
|
510 |
permissions = self._index_permissions()
|
511 |
for args in card:
|
511 |
for args in card:
|
512 |
perm = args['id']
|
512 |
perm = args['id']
|
513 |
permissions[perm] = []
|
|
|
514 |
new_group_ids = args.get('new', [])
|
513 |
new_group_ids = args.get('new', [])
|
515 |
group_ids = args.get('value', [])
|
514 |
group_ids = args.get('value', [])
|
|
|
515 |
# make sure the admin group has the admin permission
|
|
|
516 |
if perm == 'admin':
|
|
|
517 |
admin_group_id = str(M.ProjectRole.query.get(project_id=c.project._id, name='Admin')._id)
|
|
|
518 |
if admin_group_id not in group_ids:
|
|
|
519 |
flash('You cannot remove the admin group from the admin permission.','warning')
|
|
|
520 |
group_ids.append(admin_group_id)
|
|
|
521 |
permissions[perm] = []
|
516 |
if isinstance(new_group_ids, basestring):
|
522 |
if isinstance(new_group_ids, basestring):
|
517 |
new_group_ids = [ new_group_ids ]
|
523 |
new_group_ids = [ new_group_ids ]
|
518 |
if isinstance(group_ids, basestring):
|
524 |
if isinstance(group_ids, basestring):
|
519 |
group_ids = [ group_ids ]
|
525 |
group_ids = [ group_ids ]
|
520 |
role_ids = map(ObjectId, group_ids + new_group_ids)
|
526 |
role_ids = map(ObjectId, group_ids + new_group_ids)
|