# Permissions

synopsis:

  Permissions Mixins to limit access and model instances in a view.

## Introduction

Django Extensions offers mixins for Class Based Views that make it easier to query and limit access to certain views.

## Current Mixins

- ModelUserFieldPermissionMixin - A Class Based View mixin that limits the accessibility to the view based on the “owner” of the view.

This will check if the currently logged in user (`self.request.user`) matches the owner of the model instance. By default, the “owner” will be called “user”.

    # models.py

    from django.db import models
    from django.conf import settings

    class MyModel(models.Model):
       author = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete = models.CASCADE)
       content = models.TextField()

    # views.py

    from django.views.generic import UpdateView

    from django_extensions.auth.mixins import ModelUserFieldPermissionMixin

    from .models import MyModel

    class MyModelUpdateView(ModelUserFieldPermissionMixin, UpdateView):
       model = MyModel
       template_name = 'mymodels/update.html'
       model_permission_user_field = 'author'