fixed error with permission Mixin
This commit is contained in:
parent
f54cf05fc6
commit
282778c8a0
@ -14,7 +14,7 @@ from reportlab.lib.units import cm
|
|||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.contrib import messages
|
from django.contrib import messages
|
||||||
from django.utils.translation import ugettext as _
|
from django.utils.translation import ugettext as _
|
||||||
from django.http import HttpResponseServerError, HttpResponse
|
from django.http import HttpResponseServerError, HttpResponse, HttpResponseRedirect
|
||||||
from django.core.urlresolvers import reverse
|
from django.core.urlresolvers import reverse
|
||||||
from django.template import loader, RequestContext
|
from django.template import loader, RequestContext
|
||||||
from django.template.loader import render_to_string
|
from django.template.loader import render_to_string
|
||||||
@ -25,7 +25,7 @@ from django.views.generic import (
|
|||||||
RedirectView as _RedirectView,
|
RedirectView as _RedirectView,
|
||||||
UpdateView as _UpdateView,
|
UpdateView as _UpdateView,
|
||||||
CreateView as _CreateView,
|
CreateView as _CreateView,
|
||||||
View,
|
View as _View,
|
||||||
FormView as _FormView,
|
FormView as _FormView,
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -38,6 +38,8 @@ from pdf import firstPage, laterPages
|
|||||||
FREE_TO_GO = 'free to go'
|
FREE_TO_GO = 'free to go'
|
||||||
|
|
||||||
|
|
||||||
|
View = _View
|
||||||
|
|
||||||
class LoginMixin(object):
|
class LoginMixin(object):
|
||||||
@method_decorator(login_required)
|
@method_decorator(login_required)
|
||||||
def dispatch(self, request, *args, **kwargs):
|
def dispatch(self, request, *args, **kwargs):
|
||||||
@ -53,23 +55,23 @@ class PermissionMixin(object):
|
|||||||
else:
|
else:
|
||||||
has_permission = request.user.has_perm(self.permission_required)
|
has_permission = request.user.has_perm(self.permission_required)
|
||||||
|
|
||||||
if has_permission:
|
if not has_permission:
|
||||||
if request.user.is_authenticated():
|
if not request.user.is_authenticated():
|
||||||
path = urlquote(request.get_full_path())
|
path = request.get_full_path()
|
||||||
return HttpResponseRedirect("%s?next=%s" % (settings.LOGIN_URL, path))
|
return HttpResponseRedirect("%s?next=%s" % (settings.LOGIN_URL, path))
|
||||||
else:
|
else:
|
||||||
return render_to_forbitten(request)
|
return render_to_forbitten(request)
|
||||||
return super(LoginMixin, self).dispatch(request, *args, **kwargs)
|
return _View.dispatch(self, request, *args, **kwargs)
|
||||||
|
|
||||||
|
|
||||||
class TemplateView(_TemplateView, PermissionMixin):
|
class TemplateView(PermissionMixin, _TemplateView):
|
||||||
def get_context_data(self, **kwargs):
|
def get_context_data(self, **kwargs):
|
||||||
context = super(TemplateView, self).get_context_data(**kwargs)
|
context = super(TemplateView, self).get_context_data(**kwargs)
|
||||||
template_manipulation.send(sender=self, context=context)
|
template_manipulation.send(sender=self, request=self.request, context=context)
|
||||||
return context
|
return context
|
||||||
|
|
||||||
|
|
||||||
class RedirectView(_RedirectView, PermissionMixin):
|
class RedirectView(PermissionMixin, _RedirectView):
|
||||||
permanent = False
|
permanent = False
|
||||||
allow_ajax = False
|
allow_ajax = False
|
||||||
|
|
||||||
@ -96,7 +98,7 @@ class RedirectView(_RedirectView, PermissionMixin):
|
|||||||
return {}
|
return {}
|
||||||
|
|
||||||
|
|
||||||
class FormView(_FormView, PermissionMixin):
|
class FormView(PermissionMixin, _FormView):
|
||||||
def get_success_url(self):
|
def get_success_url(self):
|
||||||
if not self.success_url:
|
if not self.success_url:
|
||||||
return ''
|
return ''
|
||||||
@ -112,7 +114,7 @@ class FormView(_FormView, PermissionMixin):
|
|||||||
return super(FormView, self).form_invalid(form)
|
return super(FormView, self).form_invalid(form)
|
||||||
|
|
||||||
|
|
||||||
class UpdateView(_UpdateView, PermissionMixin):
|
class UpdateView(PermissionMixin, _UpdateView):
|
||||||
def get_success_url(self):
|
def get_success_url(self):
|
||||||
if 'apply' in self.request.POST:
|
if 'apply' in self.request.POST:
|
||||||
return ''
|
return ''
|
||||||
@ -124,7 +126,7 @@ class UpdateView(_UpdateView, PermissionMixin):
|
|||||||
return context
|
return context
|
||||||
|
|
||||||
|
|
||||||
class CreateView(_CreateView, PermissionMixin):
|
class CreateView(PermissionMixin, _CreateView):
|
||||||
def get_success_url(self):
|
def get_success_url(self):
|
||||||
if 'apply' in self.request.POST:
|
if 'apply' in self.request.POST:
|
||||||
return reverse('item_edit', args=[self.object.id])
|
return reverse('item_edit', args=[self.object.id])
|
||||||
@ -137,7 +139,7 @@ class DeleteView(RedirectView, SingleObjectMixin):
|
|||||||
self.confirm_form(request, self.object)
|
self.confirm_form(request, self.object)
|
||||||
|
|
||||||
|
|
||||||
class PDFView(View, PermissionMixin):
|
class PDFView(PermissionMixin, View):
|
||||||
filename = 'No_Name'
|
filename = 'No_Name'
|
||||||
|
|
||||||
def render_to_response(self, filename):
|
def render_to_response(self, filename):
|
||||||
|
Loading…
Reference in New Issue
Block a user