def inner(self, request=None, *args, **kwargs): if isinstance(self, HttpRequest): from permission.decorators.functionbase import \ permission_required as decorator # this is a functional view not classbased view. decorator = decorator(perm, queryset, login_url, raise_exception) decorator = decorator(view_method) if not request: args = list(args) args.insert(0, request) request = self return decorator(request, *args, **kwargs) else: from permission.decorators.classbase import \ get_object_from_classbased_instance # get object obj = get_object_from_classbased_instance( self, queryset, request, *args, **kwargs ) if not request.user.has_perm(perm, obj=obj): if raise_exception: raise PermissionDenied else: return redirect_to_login(request, login_url) return view_method(self, request, *args, **kwargs)
def inner(self, request, *args, **kwargs): # get object obj = get_object_from_classbased_instance( self, queryset, request, *args, **kwargs) if not request.user.has_perm(perm, obj=obj): if raise_exception: raise PermissionDenied else: return redirect_to_login(request, login_url) return view_func(self, request, *args, **kwargs)
def inner(self, request, *args, **kwargs): # get object obj = get_object_from_classbased_instance( self, queryset, request, *args, **kwargs ) if not request.user.has_perm(perm, obj=obj): if raise_exception: raise PermissionDenied else: return redirect_to_login(request, login_url) return view_func(self, request, *args, **kwargs)
def inner(request, *args, **kwargs): _kwargs = copy.copy(kwargs) # overwrite queryset if specified if queryset: _kwargs['queryset'] = queryset # get object from view if 'date_field' in _kwargs: fn = get_object_from_date_based_view else: fn = get_object_from_list_detail_view if fn.validate(request, *args, **_kwargs): obj = fn(request, *args, **_kwargs) else: # required arguments is not passed obj = None if not request.user.has_perm(perm, obj=obj): if raise_exception: raise PermissionDenied else: return redirect_to_login(request, login_url) return view_func(request, *args, **_kwargs)
def inner(request, *args, **kwargs): _kwargs = copy.copy(kwargs) # overwrite queryset if specified if queryset: _kwargs["queryset"] = queryset # get object from view if "date_field" in _kwargs: fn = get_object_from_date_based_view else: fn = get_object_from_list_detail_view if fn.validate(request, *args, **_kwargs): obj = fn(request, *args, **_kwargs) else: # required arguments is not passed obj = None if not request.user.has_perm(perm, obj=obj): if raise_exception: raise PermissionDenied else: return redirect_to_login(request, login_url) return view_func(request, *args, **_kwargs)