From: Nicolas Iooss Date: Tue, 28 May 2013 17:11:56 +0000 (+0200) Subject: groups: make superuser have access to everything X-Git-Url: http://git.polytechnique.org/?p=xnet;a=commitdiff_plain;h=81d228199aa186c4317a6919f3b0bb0be53d6baa groups: make superuser have access to everything Signed-off-by: Nicolas Iooss --- 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