diff --git a/AuthApp/middleware.py b/AuthApp/middleware.py index 9ae529b..bb9ea6f 100644 --- a/AuthApp/middleware.py +++ b/AuthApp/middleware.py @@ -1,7 +1,28 @@ import json - +import datetime from django.http import HttpResponse -from django.utils.deprecation import MiddlewareMixin +from django.conf import settings + + +def set_cookie(response, key, value, days_expire=7): + if days_expire is None: + max_age = 365 * 24 * 60 * 60 # one year + else: + max_age = days_expire * 24 * 60 * 60 + expires = datetime.datetime.strftime( + datetime.datetime.utcnow() + datetime.timedelta(seconds=max_age), + "%a, %d-%b-%Y %H:%M:%S GMT", + ) + response.set_cookie( + key, + value, + max_age=max_age, + expires=expires, + domain=settings.SESSION_COOKIE_DOMAIN, + secure=settings.SESSION_COOKIE_SECURE or None, + ) + + return response class ResponseInterceptionMiddleware: # def __init__(self, get_response): @@ -18,12 +39,20 @@ class ResponseInterceptionMiddleware: # Code to be executed for each request before # the view (and later middleware) are called. - if request.user.is_authenticated: - request = request.user.user_profile.save_user_alerts_to_session(request) + # if request.user.is_authenticated: + # request = request.user.user_profile.save_user_alerts_to_session(request) response = self.get_response(request) + if request.user.is_authenticated: + for_save_to_session = request.user.user_profile.get_node_by_name('for_save_to_session') + if for_save_to_session: + for key, val in for_save_to_session.items(): + # request.session[key] = json.dumps(val) + # response.set_cookie(key, json.dumps(val)) + set_cookie(response, key, val, 30) # Code to be executed for each request/response after # the view is called. - return response \ No newline at end of file + return response + diff --git a/AuthApp/views.py b/AuthApp/views.py index 454dab8..af9ead1 100644 --- a/AuthApp/views.py +++ b/AuthApp/views.py @@ -55,10 +55,13 @@ def user_profile_View(request): Dict = {} - request.session['user_id'] = request.user.id + user_online = request.session.get('online', False) + # request.COOKIES['user_id'] = request.user.id t = loader.get_template('pages/profile/p_user_profile.html') - return HttpResponse(t.render(Dict, request)) + response = HttpResponse(t.render(Dict, request)) + response.set_cookie('user_id', request.user.id) + return response def login_View(request):