Commit 6a80e759 by Bach Dániel Committed by Guba Sándor

dashboard: add LoginRequiredMixin to views

parent 11fa1e47
...@@ -20,7 +20,7 @@ from django.contrib import messages ...@@ -20,7 +20,7 @@ from django.contrib import messages
from django.utils.translation import ugettext as _ from django.utils.translation import ugettext as _
from django_tables2 import SingleTableView from django_tables2 import SingleTableView
from braces.views import LoginRequiredMixin from braces.views import LoginRequiredMixin, SuperuserRequiredMixin
from .forms import VmCreateForm, TemplateForm, LeaseForm from .forms import VmCreateForm, TemplateForm, LeaseForm
from .tables import (VmListTable, NodeListTable, NodeVmListTable, from .tables import (VmListTable, NodeListTable, NodeVmListTable,
...@@ -99,7 +99,7 @@ def get_acl_data(obj): ...@@ -99,7 +99,7 @@ def get_acl_data(obj):
'url': reverse('dashboard.views.vm-acl', args=[obj.pk])} 'url': reverse('dashboard.views.vm-acl', args=[obj.pk])}
class CheckedDetailView(DetailView): class CheckedDetailView(LoginRequiredMixin, DetailView):
read_level = 'user' read_level = 'user'
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
...@@ -269,7 +269,7 @@ class VmDetailView(CheckedDetailView): ...@@ -269,7 +269,7 @@ class VmDetailView(CheckedDetailView):
kwargs={'pk': self.get_object().pk})) kwargs={'pk': self.get_object().pk}))
class NodeDetailView(DetailView): class NodeDetailView(LoginRequiredMixin, SuperuserRequiredMixin, DetailView):
template_name = "dashboard/node-detail.html" template_name = "dashboard/node-detail.html"
model = Node model = Node
...@@ -306,7 +306,7 @@ class NodeDetailView(DetailView): ...@@ -306,7 +306,7 @@ class NodeDetailView(DetailView):
kwargs={'pk': self.object.pk})) kwargs={'pk': self.object.pk}))
class AclUpdateView(View, SingleObjectMixin): class AclUpdateView(LoginRequiredMixin, View, SingleObjectMixin):
def post(self, request, *args, **kwargs): def post(self, request, *args, **kwargs):
instance = self.get_object() instance = self.get_object()
...@@ -361,7 +361,7 @@ class TemplateCreate(SuccessMessageMixin, CreateView): ...@@ -361,7 +361,7 @@ class TemplateCreate(SuccessMessageMixin, CreateView):
return reverse_lazy("dashboard.views.template-list") return reverse_lazy("dashboard.views.template-list")
class TemplateDetail(SuccessMessageMixin, UpdateView): class TemplateDetail(LoginRequiredMixin, SuccessMessageMixin, UpdateView):
model = InstanceTemplate model = InstanceTemplate
template_name = "dashboard/template-edit.html" template_name = "dashboard/template-edit.html"
form_class = TemplateForm form_class = TemplateForm
...@@ -397,7 +397,7 @@ class TemplateDetail(SuccessMessageMixin, UpdateView): ...@@ -397,7 +397,7 @@ class TemplateDetail(SuccessMessageMixin, UpdateView):
kwargs=self.kwargs) kwargs=self.kwargs)
class TemplateList(SingleTableView): class TemplateList(LoginRequiredMixin, SingleTableView):
template_name = "dashboard/template-list.html" template_name = "dashboard/template-list.html"
model = InstanceTemplate model = InstanceTemplate
table_class = TemplateListTable table_class = TemplateListTable
...@@ -416,14 +416,14 @@ class VmList(LoginRequiredMixin, SingleTableView): ...@@ -416,14 +416,14 @@ class VmList(LoginRequiredMixin, SingleTableView):
table_pagination = False table_pagination = False
class NodeList(SingleTableView): class NodeList(LoginRequiredMixin, SuperuserRequiredMixin, SingleTableView):
template_name = "dashboard/node-list.html" template_name = "dashboard/node-list.html"
model = Node model = Node
table_class = NodeListTable table_class = NodeListTable
table_pagination = False table_pagination = False
class VmCreate(TemplateView): class VmCreate(LoginRequiredMixin, TemplateView):
form_class = VmCreateForm form_class = VmCreateForm
form = None form = None
...@@ -497,7 +497,7 @@ class VmCreate(TemplateView): ...@@ -497,7 +497,7 @@ class VmCreate(TemplateView):
return redirect(path) return redirect(path)
class NodeCreate(TemplateView): class NodeCreate(LoginRequiredMixin, SuperuserRequiredMixin, TemplateView):
def get_template_names(self): def get_template_names(self):
if self.request.is_ajax(): if self.request.is_ajax():
...@@ -573,7 +573,7 @@ class NodeCreate(TemplateView): ...@@ -573,7 +573,7 @@ class NodeCreate(TemplateView):
return redirect(reverse_lazy('dashboard.views.detail', resp)) return redirect(reverse_lazy('dashboard.views.detail', resp))
class VmDelete(DeleteView): class VmDelete(LoginRequiredMixin, DeleteView):
model = Instance model = Instance
template_name = "dashboard/confirm/base-delete.html" template_name = "dashboard/confirm/base-delete.html"
...@@ -591,6 +591,9 @@ class VmDelete(DeleteView): ...@@ -591,6 +591,9 @@ class VmDelete(DeleteView):
return reverse_lazy('dashboard.index') return reverse_lazy('dashboard.index')
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
object = self.get_object()
if not object.has_level(self.request.user, 'owner'):
raise PermissionDenied()
# this is redundant now, but if we wanna add more to print # this is redundant now, but if we wanna add more to print
# we'll need this # we'll need this
context = super(VmDelete, self).get_context_data(**kwargs) context = super(VmDelete, self).get_context_data(**kwargs)
...@@ -618,7 +621,7 @@ class VmDelete(DeleteView): ...@@ -618,7 +621,7 @@ class VmDelete(DeleteView):
return HttpResponseRedirect(success_url) return HttpResponseRedirect(success_url)
class NodeDelete(DeleteView): class NodeDelete(LoginRequiredMixin, SuperuserRequiredMixin, DeleteView):
"""This stuff deletes the node. """This stuff deletes the node.
""" """
...@@ -664,7 +667,7 @@ class NodeDelete(DeleteView): ...@@ -664,7 +667,7 @@ class NodeDelete(DeleteView):
return reverse_lazy('dashboard.index') return reverse_lazy('dashboard.index')
class PortDelete(DeleteView): class PortDelete(LoginRequiredMixin, DeleteView):
model = Rule model = Rule
pk_url_kwarg = 'rule' pk_url_kwarg = 'rule'
...@@ -710,7 +713,7 @@ class PortDelete(DeleteView): ...@@ -710,7 +713,7 @@ class PortDelete(DeleteView):
kwargs={'pk': self.kwargs.get("pk")}) kwargs={'pk': self.kwargs.get("pk")})
class VmMassDelete(View): class VmMassDelete(LoginRequiredMixin, View):
def get(self, request, *args, **kwargs): def get(self, request, *args, **kwargs):
vms = request.GET.getlist('v[]') vms = request.GET.getlist('v[]')
objects = Instance.objects.filter(pk__in=vms) objects = Instance.objects.filter(pk__in=vms)
...@@ -757,7 +760,7 @@ class LeaseCreate(SuccessMessageMixin, CreateView): ...@@ -757,7 +760,7 @@ class LeaseCreate(SuccessMessageMixin, CreateView):
return reverse_lazy("dashboard.views.template-list") return reverse_lazy("dashboard.views.template-list")
class LeaseDetail(SuccessMessageMixin, UpdateView): class LeaseDetail(LoginRequiredMixin, SuccessMessageMixin, UpdateView):
model = Lease model = Lease
form_class = LeaseForm form_class = LeaseForm
template_name = "dashboard/lease-edit.html" template_name = "dashboard/lease-edit.html"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment