views.py 1.0 KB

123456789101112131415161718192021222324252627
  1. # -*- coding: utf-8 -*-
  2. from __future__ import unicode_literals
  3. from django.shortcuts import get_object_or_404
  4. from django.views.generic.edit import UpdateView
  5. from django.contrib.auth.decorators import login_required
  6. from django.contrib.messages.views import SuccessMessageMixin
  7. from django.utils.decorators import method_decorator
  8. from .models import DSLConfiguration
  9. class DSLView(SuccessMessageMixin, UpdateView):
  10. model = DSLConfiguration
  11. fields = ['password']
  12. success_message = "Mot de passe mis à jour avec succès !"
  13. @method_decorator(login_required)
  14. def dispatch(self, *args, **kwargs):
  15. return super(DSLView, self).dispatch(*args, **kwargs)
  16. def get_object(self):
  17. if self.request.user.is_superuser:
  18. return get_object_or_404(DSLConfiguration, pk=self.kwargs.get("pk"))
  19. # For normal users, ensure the VPN belongs to them.
  20. return get_object_or_404(DSLConfiguration, pk=self.kwargs.get("pk"),
  21. offersubscription__member=self.request.user)