refactor dashboard.views.UserDashboardView

- use gvacommon.viewmixins.StaffOrSelfLoginRequiredMixin instead of custom
  implementation
This commit is contained in:
Jan Dittberner 2015-01-24 16:12:23 +01:00
parent dd7a40a019
commit 3a9110dc30

View file

@ -4,15 +4,13 @@ This module defines the views for the gnuviechadmin customer dashboard.
""" """
from __future__ import unicode_literals from __future__ import unicode_literals
from django.http import HttpResponseForbidden
from django.views.generic import ( from django.views.generic import (
DetailView, DetailView,
TemplateView, TemplateView,
) )
from django.utils.translation import ugettext as _
from django.contrib.auth import get_user_model from django.contrib.auth import get_user_model
from braces.views import LoginRequiredMixin from gvacommon.viewmixins import StaffOrSelfLoginRequiredMixin
from hostingpackages.models import CustomerHostingPackage from hostingpackages.models import CustomerHostingPackage
@ -25,7 +23,7 @@ class IndexView(TemplateView):
template_name = 'dashboard/index.html' template_name = 'dashboard/index.html'
class UserDashboardView(LoginRequiredMixin, DetailView): class UserDashboardView(StaffOrSelfLoginRequiredMixin, DetailView):
""" """
This is the user dashboard view. This is the user dashboard view.
@ -35,18 +33,16 @@ class UserDashboardView(LoginRequiredMixin, DetailView):
slug_field = 'username' slug_field = 'username'
template_name = 'dashboard/user_dashboard.html' template_name = 'dashboard/user_dashboard.html'
def dispatch(self, request, *args, **kwargs):
if (request.user.is_staff or request.user == self.get_object()):
return super(UserDashboardView, self).dispatch(
request, *args, **kwargs
)
return HttpResponseForbidden(
_('You are not allowed to view this page.')
)
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = super(UserDashboardView, self).get_context_data(**kwargs) context = super(UserDashboardView, self).get_context_data(**kwargs)
context['hosting_packages'] = CustomerHostingPackage.objects.filter( context['hosting_packages'] = CustomerHostingPackage.objects.filter(
customer=self.object customer=self.object
) )
return context return context
def get_customer_object(self):
"""
Returns the customer object.
"""
return self.get_object()