gva/gnuviechadmin/dashboard/views.py
Jan Dittberner 2bc278ae92 implement login and logout
- add LogoutView to dashboard app
- define logout URL pattern
- only use login view from django.contrib.auth.views instead of including all
  auth URLs
- change base template to support login/logout
- add template dashboard/user_dashboard.html
2015-01-17 15:42:47 +01:00

57 lines
1.5 KiB
Python

"""
This module defines the views for the gnuviechadmin customer dashboard.
"""
from __future__ import unicode_literals
from django.http import HttpResponseForbidden
from django.views.generic import (
DetailView,
TemplateView,
)
from django.views.generic.base import RedirectView
from django.utils.translation import ugettext as _
from django.contrib.auth import get_user_model, logout
from braces.views import LoginRequiredMixin
class IndexView(TemplateView):
"""
This is the dashboard view.
"""
template_name = 'dashboard/index.html'
class UserDashboardView(LoginRequiredMixin, DetailView):
"""
This is the user dashboard view.
"""
model = get_user_model()
context_object_name = 'dashboard_user'
slug_field = 'username'
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.')
)
class LogoutView(RedirectView):
pattern_name = 'dashboard'
def get(self, *args, **kwargs):
logout(self.request)
return super(LogoutView, self).get(*args, **kwargs)
def get_redirect_url(self, *args, **kwargs):
if 'next' in self.request.GET:
return self.request.GET['next']
return super(LogoutView, self).get_redirect_url(*args, **kwargs)