From 81d228199aa186c4317a6919f3b0bb0be53d6baa Mon Sep 17 00:00:00 2001 From: Nicolas Iooss Date: Tue, 28 May 2013 19:11:56 +0200 Subject: [PATCH] groups: make superuser have access to everything Signed-off-by: Nicolas Iooss --- xnet/groups/decorators.py | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/xnet/groups/decorators.py b/xnet/groups/decorators.py index 55b942f..189da82 100644 --- a/xnet/groups/decorators.py +++ b/xnet/groups/decorators.py @@ -52,14 +52,22 @@ class group_required(object): if not request.user.is_authenticated(): return redirect_to_login(request.build_absolute_uri()) - try: - membership = request.user.memberships.get( + # A superuser is admin of every group, but there is no membership in the database + if request.user.is_superuser: + membership = Membership( xgroup=group, - level__gte=self.level, - state='enabled', - ) - except Membership.DoesNotExist: - membership = None + user=request.user, + level=Membership.LEVEL_ADMIN, + state='enabled') + else: + try: + membership = request.user.memberships.get( + xgroup=group, + level__gte=self.level, + state='enabled', + ) + except Membership.DoesNotExist: + membership = None request.group = group request.membership = membership -- 2.1.4