##// END OF EJS Templates
repo groups: make it possible to remove own explicit permissions, now when group owners always have admin permissions...
Mads Kiilerich -
r8772:2e1059de stable
parent child Browse files
Show More
@@ -90,13 +90,6 b' class RepoGroupsController(base.BaseCont'
90
90
91 return data
91 return data
92
92
93 def _revoke_perms_on_yourself(self, form_result):
94 _up = [u for u in form_result['perms_updates'] if request.authuser.username == u[0]]
95 _new = [u for u in form_result['perms_new'] if request.authuser.username == u[0]]
96 if _new and _new[0][1] != 'group.admin' or _up and _up[0][1] != 'group.admin':
97 return True
98 return False
99
100 def index(self, format='html'):
93 def index(self, format='html'):
101 _list = db.RepoGroup.query(sorted=True).all()
94 _list = db.RepoGroup.query(sorted=True).all()
102 group_iter = RepoGroupList(_list, perm_level='admin')
95 group_iter = RepoGroupList(_list, perm_level='admin')
@@ -349,11 +342,6 b' class RepoGroupsController(base.BaseCont'
349 c.repo_group = db.RepoGroup.guess_instance(group_name)
342 c.repo_group = db.RepoGroup.guess_instance(group_name)
350 valid_recursive_choices = ['none', 'repos', 'groups', 'all']
343 valid_recursive_choices = ['none', 'repos', 'groups', 'all']
351 form_result = RepoGroupPermsForm(valid_recursive_choices)().to_python(request.POST)
344 form_result = RepoGroupPermsForm(valid_recursive_choices)().to_python(request.POST)
352 if not request.authuser.is_admin:
353 if self._revoke_perms_on_yourself(form_result):
354 msg = _('Cannot revoke permission for yourself as admin')
355 webutils.flash(msg, category='warning')
356 raise HTTPFound(location=url('edit_repo_group_perms', group_name=group_name))
357 recursive = form_result['recursive']
345 recursive = form_result['recursive']
358 # iterate over all members(if in recursive mode) of this groups and
346 # iterate over all members(if in recursive mode) of this groups and
359 # set the permissions !
347 # set the permissions !
@@ -379,11 +367,6 b' class RepoGroupsController(base.BaseCont'
379 elif obj_type == 'user_group':
367 elif obj_type == 'user_group':
380 obj_id = safe_int(request.POST.get('user_group_id'))
368 obj_id = safe_int(request.POST.get('user_group_id'))
381
369
382 if not request.authuser.is_admin:
383 if obj_type == 'user' and request.authuser.user_id == obj_id:
384 msg = _('Cannot revoke permission for yourself as admin')
385 webutils.flash(msg, category='warning')
386 raise Exception('revoke admin permission on self')
387 recursive = request.POST.get('recursive', 'none')
370 recursive = request.POST.get('recursive', 'none')
388 if obj_type == 'user':
371 if obj_type == 'user':
389 RepoGroupModel().delete_permission(repo_group=group_name,
372 RepoGroupModel().delete_permission(repo_group=group_name,
@@ -12,9 +12,7 b''
12 </tr>
12 </tr>
13 ## USERS
13 ## USERS
14 %for r2p in c.repo_group.repo_group_to_perm:
14 %for r2p in c.repo_group.repo_group_to_perm:
15 ##forbid revoking permission from yourself, except if you're an super admin
16 <tr id="id${id(r2p.user.username)}">
15 <tr id="id${id(r2p.user.username)}">
17 %if request.authuser.user_id != r2p.user.user_id or request.authuser.is_admin:
18 <td>${h.radio('u_perm_%s' % r2p.user.username,'group.none')}</td>
16 <td>${h.radio('u_perm_%s' % r2p.user.username,'group.none')}</td>
19 <td>${h.radio('u_perm_%s' % r2p.user.username,'group.read')}</td>
17 <td>${h.radio('u_perm_%s' % r2p.user.username,'group.read')}</td>
20 <td>${h.radio('u_perm_%s' % r2p.user.username,'group.write')}</td>
18 <td>${h.radio('u_perm_%s' % r2p.user.username,'group.write')}</td>
@@ -34,17 +32,6 b''
34 </button>
32 </button>
35 %endif
33 %endif
36 </td>
34 </td>
37 %else:
38 <td>${h.radio('u_perm_%s' % r2p.user.username,'group.none', disabled="disabled")}</td>
39 <td>${h.radio('u_perm_%s' % r2p.user.username,'group.read', disabled="disabled")}</td>
40 <td>${h.radio('u_perm_%s' % r2p.user.username,'group.write', disabled="disabled")}</td>
41 <td>${h.radio('u_perm_%s' % r2p.user.username,'group.admin', disabled="disabled")}</td>
42 <td>
43 ${h.gravatar(r2p.user.email, cls="perm-gravatar", size=14)}
44 ${r2p.user.username if r2p.user.username != 'default' else _('Default')}
45 </td>
46 <td><i class="icon-user"></i>${_('Admin')}</td>
47 %endif
48 </tr>
35 </tr>
49 %endfor
36 %endfor
50
37
General Comments 0
You need to be logged in to leave comments. Login now