Untitled
class CheckEntryPointMiddleware(BaseMiddleware): def __call__(self, request): #TODO: elenco ordini accessibili in homepage # Priorità: get, cookie, sessione e infine ordine dell'utente # 0) se c'è un pattern di disattivazione del cookie pulisco querystring, cookie e sessione # 1) se c'è' il get lo prendo e lo metto nel cookie e sessione togliendolo dal querystring # 2) se c'è solo il cookie lo metto in sessione # 3) se non c'è cookie, get o pattern disattivazione esco subito # 4) se l'utente ha un ordine? if request.user.is_anonymous: return self.get_response(request) if request.user.is_ingegnere or request.user.is_professionista: if order_abbreviation := request.GET.get("order_selected"): query_params = request.GET.copy() query_params.pop('order_selected', None) response = HttpResponseRedirect( request.path + "?" + query_params.urlencode() ) if order_abbreviation == "null": # 0) response.delete_cookie( 'order_selected', ) # del(request.session["order_selected"]) request.session.pop("order_selected", None) else: # 1) response.set_cookie( 'order_selected', order_abbreviation, httponly=True ) return response else: # 2) order_abbreviation = request.COOKIES.get("order_selected") if not order_abbreviation: # 4) order_abbreviation = request.user.get_order_abbreviation try: province = sp_models.Ordine.objects.get( provincia__codice_targa=order_abbreviation ) request.session["order_selected"] = province.pk except sp_models.Ordine.DoesNotExist: # 3 pass return self.get_response(request)
Leave a Comment