Repository URL to install this package:
|
Version:
0.2.0a6 ▾
|
from django.contrib.admin.options import BaseModelAdmin
from django.contrib.auth import get_permission_codename
from .querysets import UserAwareQuerySet
class UserAwareAdminMixin(BaseModelAdmin):
def get_queryset(self, request):
queryset: UserAwareQuerySet = super().get_queryset(request)
if request.user.is_superuser:
return queryset
return queryset.filter_by_user(request.user)
class ObjectPermissionsModelAdminMixin(object):
def has_view_permission(self, request, obj=None):
opts = self.opts
codename = get_permission_codename("view", opts)
return request.user.has_perm("%s.%s" % (opts.app_label, codename), obj)
def has_change_permission(self, request, obj=None):
opts = self.opts
codename = get_permission_codename("change", opts)
return request.user.has_perm("%s.%s" % (opts.app_label, codename), obj)
def has_delete_permission(self, request, obj=None):
opts = self.opts
codename = get_permission_codename("delete", opts)
return request.user.has_perm("%s.%s" % (opts.app_label, codename), obj)
__all__ = [
'UserAwareAdminMixin',
'ObjectPermissionsModelAdminMixin',
]