bc29091be28aa2e91001bba6021fba7763a8f5ce
3 from django
.http
import HttpResponseForbidden
4 from django
.shortcuts
import get_object_or_404
6 from .models
import XGroup
, Membership
9 class group_required(object):
10 def __init__(self
, level
=Membership
.LEVEL_MEMBER
):
13 def __call__(self
, view_func
):
14 @functools.wraps(view_func
)
15 def wrapped_view_func(request
, group_slug
, *args
, **kwargs
):
16 group
= get_object_or_404(XGroup
, short
=group_slug
)
17 membership
= request
.user
.memberships
.filter(
19 level__gte
=self
.level
,
22 if membership
.exists():
23 return view_func(request
, group
, *args
, membership
=membership
[0], **kwargs
)
25 return HttpResponseForbidden()
26 return wrapped_view_func