list user permissions django api rest code example
Example 1: django user permission check
# all your import goes here for Models.py
...
# Adding Permissions to a Model.
class BlogPost(models.Model):
... # model fields
class Meta:
permissions = [('can_write_blog', 'Can Write Blog')]
# Checking permissions in Views.py
if request.user.has_perm('app_name.can_write_blog'):
# give access to blog post form
else:
# restrict user from access the page.
Example 2: Django: checking permission on user
from typing import Set
from django.contrib import admin
from django.contrib.auth.models import User
from django.contrib.auth.admin import UserAdmin
@admin.register(User)
class CustomUserAdmin(UserAdmin):
def get_form(self, request, obj=None, **kwargs):
form = super().get_form(request, obj, **kwargs)
is_superuser = request.user.is_superuser
disabled_fields = set() # type: Set[str]
if not is_superuser:
disabled_fields |= {
'username',
'is_superuser',
'user_permissions',
}
for f in disabled_fields:
if f in form.base_fields:
form.base_fields[f].disabled = True
return form