comparison rhodecode/controllers/admin/repos_groups.py @ 3715:25dbbdae3ed9 beta

consistent handling of grant/revoke of permissions widgets - use 1 method for users and for users groups - use common JS for ajax revoke - cleanup code
author Marcin Kuzminski <marcin@python-works.com>
date Mon, 08 Apr 2013 23:49:08 +0200
parents 7e3d89d9d3a2
children 1e5bb8ed77d6
comparison
equal deleted inserted replaced
3714:7e3d89d9d3a2 3715:25dbbdae3ed9
292 Session().commit() 292 Session().commit()
293 h.flash(_('Repository Group permissions updated'), category='success') 293 h.flash(_('Repository Group permissions updated'), category='success')
294 return redirect(url('edit_repos_group', group_name=group_name)) 294 return redirect(url('edit_repos_group', group_name=group_name))
295 295
296 @HasReposGroupPermissionAnyDecorator('group.admin') 296 @HasReposGroupPermissionAnyDecorator('group.admin')
297 def delete_repos_group_user_perm(self, group_name): 297 def delete_repo_group_perm_member(self, group_name):
298 """ 298 """
299 DELETE an existing repository group permission user 299 DELETE an existing repository group permission user
300 300
301 :param group_name: 301 :param group_name:
302 """ 302 """
303 try: 303 try:
304 obj_type = request.POST.get('obj_type')
305 obj_id = None
306 if obj_type == 'user':
307 obj_id = safe_int(request.POST.get('user_id'))
308 elif obj_type == 'user_group':
309 obj_id = safe_int(request.POST.get('user_group_id'))
310
304 if not c.rhodecode_user.is_admin: 311 if not c.rhodecode_user.is_admin:
305 if c.rhodecode_user.user_id == safe_int(request.POST['user_id']): 312 if obj_type == 'user' and c.rhodecode_user.user_id == obj_id:
306 msg = _('Cannot revoke permission for yourself as admin') 313 msg = _('Cannot revoke permission for yourself as admin')
307 h.flash(msg, category='warning') 314 h.flash(msg, category='warning')
308 raise Exception('revoke admin permission on self') 315 raise Exception('revoke admin permission on self')
309 recursive = str2bool(request.POST.get('recursive', False)) 316 recursive = str2bool(request.POST.get('recursive', False))
310 ReposGroupModel().delete_permission( 317 if obj_type == 'user':
311 repos_group=group_name, obj=request.POST['user_id'], 318 ReposGroupModel().delete_permission(
312 obj_type='user', recursive=recursive 319 repos_group=group_name, obj=obj_id,
313 ) 320 obj_type='user', recursive=recursive
321 )
322 elif obj_type == 'user_group':
323 ReposGroupModel().delete_permission(
324 repos_group=group_name, obj=obj_id,
325 obj_type='users_group', recursive=recursive
326 )
327
314 Session().commit() 328 Session().commit()
315 except Exception: 329 except Exception:
316 log.error(traceback.format_exc()) 330 log.error(traceback.format_exc())
317 h.flash(_('An error occurred during deletion of group user'), 331 h.flash(_('An error occurred during revoking of permission'),
318 category='error')
319 raise HTTPInternalServerError()
320
321 @HasReposGroupPermissionAnyDecorator('group.admin')
322 def delete_repos_group_users_group_perm(self, group_name):
323 """
324 DELETE an existing repository group permission user group
325
326 :param group_name:
327 """
328
329 try:
330 recursive = str2bool(request.POST.get('recursive', False))
331 ReposGroupModel().delete_permission(
332 repos_group=group_name, obj=request.POST['users_group_id'],
333 obj_type='users_group', recursive=recursive
334 )
335 Session().commit()
336 except Exception:
337 log.error(traceback.format_exc())
338 h.flash(_('An error occurred during deletion of group'
339 ' user groups'),
340 category='error') 332 category='error')
341 raise HTTPInternalServerError() 333 raise HTTPInternalServerError()
342 334
343 def show_by_name(self, group_name): 335 def show_by_name(self, group_name):
344 """ 336 """