Decorators — django-guardian v0.1.1 documentation

### Navigation

- index
- modules |
- next |
- previous |
- django-guardian v0.1.1 documentation »
- API Reference »

# Decorators

Return to API Reference.

## permission_required

`guardian.decorators.` `permission_required`(perm, lookup_variables=None, **kwargs)

  Decorator for views that checks whether a user has a particular permission enabled.

  Optionally, instances for which check should be made may be passed as an second argument or as a tuple parameters same as those passed to `get_object_or_404` but must be provided as pairs of strings.

  Parameters: | login_url – if denied, user would be redirected to location set by this parameter. Defaults to `django.conf.settings.LOGIN_URL`. redirect_field_name – name of the parameter passed if redirected. Defaults to `django.contrib.auth.REDIRECT_FIELD_NAME`. return_403`` – if set to `True` then instead of redirecting to the login page, response with status code 403 is returned ( `django.http.HttpResponseForbidden` instance). Defaults to `False`.

  Examples:

      @permission_required('auth.change_user', return_403=True)
      def my_view(request):
          return HttpResponse('Hello')

      @permission_required('auth.change_user', (User, 'username', 'username'))
      def my_view(request, username):
          user = get_object_or_404(User, username=username)
          return user.get_absolute_url()

      @permission_required('auth.change_user',
          (User, 'username', 'username', 'groups__name', 'group_name'))
      def my_view(request, username, group_name):
          user = get_object_or_404(User, username=username,
              group__name=group_name)
          return user.get_absolute_url()

## permission_required_or_403

`guardian.decorators.` `permission_required_or_403`(perm, *args, **kwargs)

  Simple wrapper for permission_required decorator.

  Standard Django’s permission_required decorator redirects user to login page in case permission check failed. This decorator may be used to return HttpResponseForbidden (status 403) instead of redirection.

  The only difference between `permission_required` decorator is that this one always set `return_403` parameter to `True`.

### Navigation

- index
- modules |
- next |
- previous |
- django-guardian v0.1.1 documentation »
- API Reference »