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