accounts/apps/gooyal_oauth2/views/pages.py
2024-08-03 18:08:41 +03:30

58 lines
2 KiB
Python

from django.contrib.auth.decorators import login_required
from django.urls import resolve, reverse_lazy
from django.utils.decorators import method_decorator
from django.views.generic import CreateView, DetailView, ListView, UpdateView
from oauth2_provider.models import get_application_model
from apps.gooyal_oauth2.forms import ApplicationCreateForm, ApplicationUpdateForm
from apps.gooyal_oauth2.models import Application
@method_decorator(login_required, name='dispatch')
class ApplicationCreateView(CreateView):
template_name = "gooyal_oauth2/application_create.html"
form_class = ApplicationCreateForm
def get_success_url(self):
return reverse_lazy("gooyal_oauth2:application_detail", kwargs={"pk": self.object.pk})
def form_valid(self, form):
form.instance.user = self.request.user
form.instance.client_type = Application.CLIENT_PUBLIC
return super().form_valid(form)
@method_decorator(login_required, name='dispatch')
class ApplicationUpdateView(UpdateView):
template_name = "gooyal_oauth2/application_create.html"
form_class = ApplicationUpdateForm
def get_queryset(self):
return Application.objects.filter(user=self.request.user)
def get_success_url(self):
return reverse_lazy("gooyal_oauth2:application_detail", kwargs={"pk": self.object.pk})
def form_valid(self, form):
# form.instance.user = self.request.user
# form.instance.client_type = Application.CLIENT_PUBLIC
return super().form_valid(form)
@method_decorator(login_required, name='dispatch')
class ApplicationDetailView(DetailView):
model = Application
template_name = "gooyal_oauth2/application_detail.html"
def get_queryset(self):
return Application.objects.filter(user=self.request.user)
@method_decorator(login_required, name='dispatch')
class ApplicationListView(ListView):
model = Application
template_name = "gooyal_oauth2/application_list.html"
paginate_by = 20
def get_queryset(self):
return Application.objects.filter(user=self.request.user)