mirror of
https://github.com/jazzband/django-admin2.git
synced 2026-03-16 22:20:24 +00:00
Moving permission checking from AdminModel2Mixin to PermissionMixin were it belongs.
This commit is contained in:
parent
2771d160a7
commit
42d89a7585
1 changed files with 13 additions and 13 deletions
|
|
@ -11,7 +11,7 @@ from . import constants, permissions
|
|||
from .utils import admin2_urlname, model_options
|
||||
|
||||
|
||||
class PermissionMixin(object):
|
||||
class PermissionMixin(AccessMixin):
|
||||
do_not_call_in_templates = True
|
||||
permission_classes = (permissions.IsStaffPermission,)
|
||||
|
||||
|
|
@ -32,6 +32,17 @@ class PermissionMixin(object):
|
|||
return False
|
||||
return True
|
||||
|
||||
def dispatch(self, request, *args, **kwargs):
|
||||
# Raise exception or redirect to login if user doesn't have
|
||||
# permissions.
|
||||
if not self.has_permission():
|
||||
if self.raise_exception:
|
||||
raise PermissionDenied # return a forbidden response
|
||||
else:
|
||||
return redirect_to_login(request.get_full_path(),
|
||||
self.get_login_url(), self.get_redirect_field_name())
|
||||
return super(PermissionMixin, self).dispatch(request, *args, **kwargs)
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = super(PermissionMixin, self).get_context_data(**kwargs)
|
||||
permission_checker = permissions.TemplatePermissionChecker(
|
||||
|
|
@ -64,20 +75,9 @@ class Admin2Mixin(PermissionMixin):
|
|||
return modelform_factory(self.get_model())
|
||||
|
||||
|
||||
class AdminModel2Mixin(Admin2Mixin, AccessMixin):
|
||||
class AdminModel2Mixin(Admin2Mixin):
|
||||
model_admin = None
|
||||
|
||||
def dispatch(self, request, *args, **kwargs):
|
||||
# Raise exception or redirect to login if user doesn't have
|
||||
# permissions.
|
||||
if not self.has_permission():
|
||||
if self.raise_exception:
|
||||
raise PermissionDenied # return a forbidden response
|
||||
else:
|
||||
return redirect_to_login(request.get_full_path(),
|
||||
self.get_login_url(), self.get_redirect_field_name())
|
||||
return super(AdminModel2Mixin, self).dispatch(request, *args, **kwargs)
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = super(AdminModel2Mixin, self).get_context_data(**kwargs)
|
||||
model = self.get_model()
|
||||
|
|
|
|||
Loading…
Reference in a new issue