Untitled
unknown
plain_text
10 months ago
2.3 kB
6
Indexable
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)Editor is loading...
Leave a Comment