From 4321bf6b55288c03ccd112455feecc27b1dac385 Mon Sep 17 00:00:00 2001 From: Sajeyks Date: Thu, 5 Nov 2026 13:39:44 +0300 Subject: [PATCH] Fix the login page and other views for current Django (is_authenticated is a property, method decorators) --- datacenterlight/views.py | 23 ++++++++++--------- hosting/forms.py | 2 +- hosting/mixins.py | 2 +- hosting/views.py | 4 ++-- membership/views.py | 5 ++-- nosystemd/views.py | 4 ++-- stored_messages/backends/default/backend.py | 4 ++-- stored_messages/backends/redis/backend.py | 4 ++-- stored_messages/storage.py | 6 ++--- .../templatetags/stored_messages_tags.py | 6 ++--- utils/views.py | 9 ++++---- 11 files changed, 36 insertions(+), 33 deletions(-) diff --git a/datacenterlight/views.py b/datacenterlight/views.py index efadeca0..66f22a22 100644 --- a/datacenterlight/views.py +++ b/datacenterlight/views.py @@ -13,6 +13,7 @@ from django.http import ( ) from django.shortcuts import render from django.utils.translation import get_language, gettext_lazy as _ +from django.utils.decorators import method_decorator from django.views.decorators.cache import cache_control from django.views.generic import FormView, CreateView, DetailView @@ -131,7 +132,7 @@ class IndexView(CreateView): if (value > 2000) or (value < 10): raise ValidationError(_('Invalid storage size')) - @cache_control(no_cache=True, must_revalidate=True, no_store=True) + @method_decorator(cache_control(no_cache=True, must_revalidate=True, no_store=True)) def get(self, request, *args, **kwargs): clear_all_session_vars(request) return HttpResponseRedirect(reverse('datacenterlight:cms_index')) @@ -242,7 +243,7 @@ class PaymentOrderView(FormView): template_name = 'datacenterlight/landing_payment.html' def get_form_class(self): - if self.request.user.is_authenticated(): + if self.request.user.is_authenticated: return BillingAddressForm else: return BillingAddressFormSignup @@ -254,7 +255,7 @@ class PaymentOrderView(FormView): else: billing_address_data = {} - if self.request.user.is_authenticated(): + if self.request.user.is_authenticated: if billing_address_data: billing_address_form = BillingAddressForm( initial=billing_address_data @@ -315,7 +316,7 @@ class PaymentOrderView(FormView): return context - @cache_control(no_cache=True, must_revalidate=True, no_store=True) + @method_decorator(cache_control(no_cache=True, must_revalidate=True, no_store=True)) def get(self, request, *args, **kwargs): request.session.pop('vat_validation_status') request.session.pop('card_id') @@ -403,7 +404,7 @@ class PaymentOrderView(FormView): context = self.get_context_data() context['login_form'] = login_form return self.render_to_response(context) - if request.user.is_authenticated(): + if request.user.is_authenticated: address_form = BillingAddressForm( data=request.POST, ) @@ -478,7 +479,7 @@ class PaymentOrderView(FormView): id_payment_method = address_form.cleaned_data.get('card') request.session["id_payment_method"] = id_payment_method logger.debug("id_payment_method is %s" % id_payment_method) - if request.user.is_authenticated(): + if request.user.is_authenticated: this_user = { 'email': request.user.email, 'name': request.user.name @@ -585,7 +586,7 @@ class OrderConfirmationView(DetailView, FormView): kwargs.update({'request': self.request}) return kwargs - @cache_control(no_cache=True, must_revalidate=True, no_store=True) + @method_decorator(cache_control(no_cache=True, must_revalidate=True, no_store=True)) def get(self, request, *args, **kwargs): context = {} # this is amount to be charge/subscribed before VAT and discount @@ -762,7 +763,7 @@ class OrderConfirmationView(DetailView, FormView): 'msg_body': _("Your product will be provisioned as soon as " "we receive the payment."), 'redirect': reverse('hosting:invoices') if - request.user.is_authenticated() else + request.user.is_authenticated else reverse('datacenterlight:index') }, 'stripe_key': settings.STRIPE_API_PUBLIC_KEY, @@ -1046,7 +1047,7 @@ class OrderConfirmationView(DetailView, FormView): latest_invoice.payment_intent ) # TODO: requires_attention is probably wrong value to compare - if request.user.is_authenticated(): + if request.user.is_authenticated: if 'generic_payment_details' in request.session: redirect_url = reverse('hosting:invoices') else: @@ -1128,7 +1129,7 @@ class OrderConfirmationView(DetailView, FormView): 'status': True, 'redirect': ( reverse('hosting:virtual_machines') - if request.user.is_authenticated() + if request.user.is_authenticated else reverse('datacenterlight:index') ), 'msg_title': str(_('Thank you for the order.')), @@ -1592,7 +1593,7 @@ def do_provisioning(request, stripe_api_cus_id, card_details_response, logger.debug("Sent user/admin emails") if real_request: clear_all_session_vars(real_request) - if real_request.user.is_authenticated(): + if real_request.user.is_authenticated: redirect_url = reverse('hosting:invoices') logger.debug("redirect_url = %s " % redirect_url) response = { diff --git a/hosting/forms.py b/hosting/forms.py index aadf15b7..cd4a52ab 100644 --- a/hosting/forms.py +++ b/hosting/forms.py @@ -218,7 +218,7 @@ class UserHostingKeyForm(forms.ModelForm): return self.data.get('name') def clean_user(self): - return self.request.user if self.request.user.is_authenticated() else None + return self.request.user if self.request.user.is_authenticated else None def clean(self): cleaned_data = self.cleaned_data diff --git a/hosting/mixins.py b/hosting/mixins.py index dfb010cf..f90470b1 100644 --- a/hosting/mixins.py +++ b/hosting/mixins.py @@ -21,7 +21,7 @@ class ProcessVMSelectionMixin(object): request.session['template'] = data request.session['specs'] = configuration.serialize() - if not request.user.is_authenticated(): + if not request.user.is_authenticated: request.session['next'] = reverse('hosting:payment') return redirect(reverse('hosting:login')) return redirect(reverse('hosting:payment')) diff --git a/hosting/views.py b/hosting/views.py index ee64c4b5..eef5e5f3 100644 --- a/hosting/views.py +++ b/hosting/views.py @@ -278,7 +278,7 @@ class SignupView(HostingContextMixin, CreateView): @method_decorator(decorators) def get(self, request, *args, **kwargs): - if self.request.user.is_authenticated(): + if self.request.user.is_authenticated: return HttpResponseRedirect(self.get_success_url()) return super(SignupView, self).get(request, *args, **kwargs) @@ -355,7 +355,7 @@ class SignupValidatedView(SignupValidateView, HostingContextMixin): @method_decorator(decorators) def get(self, request, *args, **kwargs): - if self.request.user.is_authenticated(): + if self.request.user.is_authenticated: return HttpResponseRedirect(reverse_lazy('hosting:dashboard')) return super(SignupValidatedView, self).get(request, *args, **kwargs) diff --git a/membership/views.py b/membership/views.py index 6fea3edd..7e1be043 100644 --- a/membership/views.py +++ b/membership/views.py @@ -1,5 +1,6 @@ from django.shortcuts import render, redirect from django.views.generic import View +from django.utils.decorators import method_decorator from django.views.decorators.cache import cache_control from django.conf import settings from django.db.models import Q @@ -43,7 +44,7 @@ class CreditCardView(View): context['form'] = PaymentForm() return context - @cache_control(no_cache=True, must_revalidate=True) + @method_decorator(cache_control(no_cache=True, must_revalidate=True)) def get(self, request, time=None): context = self._get_context(request, time) next = request.session.get('next') @@ -83,7 +84,7 @@ class LoginRegistrationView(View): login_form = LoginForm() register_form = RegisterForm() request.session['next'] = None - if request.user.is_authenticated(): + if request.user.is_authenticated: return redirect("membership") else: return render(request, 'templates/login.html', diff --git a/nosystemd/views.py b/nosystemd/views.py index 7f6e0fc7..c92a0906 100644 --- a/nosystemd/views.py +++ b/nosystemd/views.py @@ -24,8 +24,8 @@ class LandingView(TemplateView): def get_context_data(self, *args, **kwargs): - allow_donation = self.request.user.is_anonymous() or \ - (self.request.user.is_authenticated() and + allow_donation = self.request.user.is_anonymous or \ + (self.request.user.is_authenticated and not DonatorStatus.objects.filter(user=self.request.user).exists()) total_donations_amount = Donation.get_total_donations_amount() diff --git a/stored_messages/backends/default/backend.py b/stored_messages/backends/default/backend.py index 822b502a..de59390c 100644 --- a/stored_messages/backends/default/backend.py +++ b/stored_messages/backends/default/backend.py @@ -12,13 +12,13 @@ class DefaultBackend(StoredMessagesBackend): """ def inbox_list(self, user): - if user.is_anonymous(): + if user.is_anonymous: return [] inbox = Inbox.objects.filter(user=user).select_related("message") return [m.message for m in inbox] def inbox_purge(self, user): - if user.is_authenticated(): + if user.is_authenticated: Inbox.objects.filter(user=user).delete() signals.inbox_purged.send(sender=self.__class__, user=user) diff --git a/stored_messages/backends/redis/backend.py b/stored_messages/backends/redis/backend.py index 9d564453..bf7cbfc6 100644 --- a/stored_messages/backends/redis/backend.py +++ b/stored_messages/backends/redis/backend.py @@ -78,12 +78,12 @@ class RedisBackend(StoredMessagesBackend): return Message(id=msg_id, message=msg_text, level=level, tags=extra_tags, date=r, url=url) def inbox_list(self, user): - if user.is_anonymous(): + if user.is_anonymous: return [] return self._list('user:%d:notifications', user) def inbox_purge(self, user): - if user.is_authenticated(): + if user.is_authenticated: self.client.delete('user:%d:notifications' % user.pk) self.client.delete('user:%d:notificationsidx' % user.pk) signals.inbox_purged.send(sender=self.__class__, user=user) diff --git a/stored_messages/storage.py b/stored_messages/storage.py index c23bc3b9..85714672 100644 --- a/stored_messages/storage.py +++ b/stored_messages/storage.py @@ -26,7 +26,7 @@ class StorageMixin(object): from other storages """ messages, all_retrieved = super(StorageMixin, self)._get(*args, **kwargs) - if self.user.is_authenticated(): + if self.user.is_authenticated: inbox_messages = self.backend.inbox_list(self.user) else: inbox_messages = [] @@ -51,7 +51,7 @@ class StorageMixin(object): if level < self.level: return # Check if the message doesn't have a level that needs to be persisted - if level not in stored_messages_settings.STORE_LEVELS or self.user.is_anonymous(): + if level not in stored_messages_settings.STORE_LEVELS or self.user.is_anonymous: return super(StorageMixin, self).add(level, message, extra_tags) self.added_new = True @@ -70,7 +70,7 @@ class StorageMixin(object): else contains both new and unread messages """ contrib_messages = [] - if self.user.is_authenticated(): + if self.user.is_authenticated: if not messages: # erase inbox self.backend.inbox_purge(self.user) diff --git a/stored_messages/templatetags/stored_messages_tags.py b/stored_messages/templatetags/stored_messages_tags.py index 49271694..ebe84cc6 100644 --- a/stored_messages/templatetags/stored_messages_tags.py +++ b/stored_messages/templatetags/stored_messages_tags.py @@ -15,7 +15,7 @@ def stored_messages_list(context, num_elements=10): """ if "user" in context: user = context["user"] - if user.is_authenticated(): + if user.is_authenticated: qs = Inbox.objects.select_related("message").filter(user=user) return { "messages": qs[:num_elements], @@ -30,7 +30,7 @@ def stored_messages_count(context): """ if "user" in context: user = context["user"] - if user.is_authenticated(): + if user.is_authenticated: return Inbox.objects.select_related("message").filter(user=user).count() @@ -41,7 +41,7 @@ def stored_messages_archive(context, num_elements=10): """ if "user" in context: user = context["user"] - if user.is_authenticated(): + if user.is_authenticated: qs = MessageArchive.objects.select_related("message").filter(user=user) return { "messages": qs[:num_elements], diff --git a/utils/views.py b/utils/views.py index c1fbed36..d6d3fc77 100644 --- a/utils/views.py +++ b/utils/views.py @@ -11,6 +11,7 @@ from django.shortcuts import render from django.utils.encoding import force_bytes from django.utils.http import urlsafe_base64_encode, urlsafe_base64_decode from django.utils.translation import gettext_lazy as _ +from django.utils.decorators import method_decorator from django.views.decorators.cache import cache_control from django.views.generic import FormView, CreateView @@ -67,9 +68,9 @@ class LoginViewMixin(FormView): return HttpResponseRedirect(self.get_success_url()) - @cache_control(no_cache=True, must_revalidate=True, no_store=True) + @method_decorator(cache_control(no_cache=True, must_revalidate=True, no_store=True)) def get(self, request, *args, **kwargs): - if self.request.user.is_authenticated(): + if self.request.user.is_authenticated: return HttpResponseRedirect(self.get_success_url()) return super(LoginViewMixin, self).get(request, *args, **kwargs) @@ -225,7 +226,7 @@ class SSHKeyCreateView(FormView): 'form': UserHostingKeyForm(request=self.request), }) - if self.request.user.is_authenticated(): + if self.request.user.is_authenticated: owner = self.request.user manager = OpenNebulaManager( email=owner.username, @@ -254,7 +255,7 @@ class AskSSHKeyView(SSHKeyCreateView): success_url = reverse_lazy('datacenterlight:order_confirmation') context_object_name = "dcl_vm_buy_add_ssh_key" - @cache_control(no_cache=True, must_revalidate=True, no_store=True) + @method_decorator(cache_control(no_cache=True, must_revalidate=True, no_store=True)) def get(self, request, *args, **kwargs): context = { 'site_url': reverse_lazy('datacenterlight:index'),