From ea8f5e8517161c1bd52f61198138dfd2fc72f8e2 Mon Sep 17 00:00:00 2001 From: Bobby <30593201+luciferreeves@users.noreply.github.com> Date: Mon, 16 Dec 2024 18:38:05 +0000 Subject: its all in a state of chaos, but it shall be working soon --- middleware/userprofilemiddleware.py | 6 +- middleware/uuidmiddleware.py | 134 ++++++++++++++++++------------------ 2 files changed, 72 insertions(+), 68 deletions(-) (limited to 'middleware') diff --git a/middleware/userprofilemiddleware.py b/middleware/userprofilemiddleware.py index 96a7997e..a7d2a281 100644 --- a/middleware/userprofilemiddleware.py +++ b/middleware/userprofilemiddleware.py @@ -6,7 +6,11 @@ from apps.blog.models import Post class UserProfileMiddleware(MiddlewareMixin): def process_request(self, request): if request.user.is_authenticated: - user_profile = UserProfile.objects.get(user=request.user) + try: + user_profile = UserProfile.objects.get(user=request.user) + except UserProfile.DoesNotExist: + user_profile = UserProfile(user=request.user) + user_profile.save() request.user.profile = user_profile request.user.profile.weblogs_created = Post.objects.filter( author=request.user diff --git a/middleware/uuidmiddleware.py b/middleware/uuidmiddleware.py index 42fe5903..90200e97 100644 --- a/middleware/uuidmiddleware.py +++ b/middleware/uuidmiddleware.py @@ -1,81 +1,81 @@ -import json -import uuid +# import json +# import uuid -import redis -import os -from dotenv import load_dotenv +# import redis +# import os +# from dotenv import load_dotenv -load_dotenv() +# load_dotenv() -redis_instance = redis.StrictRedis( - host=os.getenv('REDIS_HOST'), - port=os.getenv('REDIS_PORT'), - password=os.getenv('REDIS_PASSWORD'), - db=0 -) +# redis_instance = redis.StrictRedis( +# host=os.getenv('REDIS_HOST'), +# port=os.getenv('REDIS_PORT'), +# password=os.getenv('REDIS_PASSWORD'), +# db=0 +# ) -class UserUUIDMiddleware: - # assign a uuid to the user if they don't have one - # store in cookies for 365 days - def __init__(self, get_response): - self.get_response = get_response - self.cookie_name = 'user_uuid' +# class UserUUIDMiddleware: +# # assign a uuid to the user if they don't have one +# # store in cookies for 365 days +# def __init__(self, get_response): +# self.get_response = get_response +# self.cookie_name = 'user_uuid' - def __call__(self, request): - if not request.COOKIES.get(self.cookie_name): - response = self.get_response(request) - response.set_cookie(self.cookie_name, uuid.uuid4(), max_age=31536000) - return response - return self.get_response(request) +# def __call__(self, request): +# if not request.COOKIES.get(self.cookie_name): +# response = self.get_response(request) +# response.set_cookie(self.cookie_name, uuid.uuid4(), max_age=31536000) +# return response +# return self.get_response(request) -def userTrackingContextProcessor(request): - # ignore /rss/ path - if '/rss/' in request.path: - return { - 'anonymous_users': 0, - 'logged_in_users': 0, - 'admin_users': 0, - } +# def userTrackingContextProcessor(request): +# # ignore /rss/ path +# if '/rss/' in request.path: +# return { +# 'anonymous_users': 0, +# 'logged_in_users': 0, +# 'admin_users': 0, +# } - # user tracking context processor - track 3 types of users (anonymous, logged in, admin) - # based on the user's uuid cookie. Only UUID are necessary to track online users. Then we - # separate them into anonymous, logged in, and admin users based on their permissions. +# # user tracking context processor - track 3 types of users (anonymous, logged in, admin) +# # based on the user's uuid cookie. Only UUID are necessary to track online users. Then we +# # separate them into anonymous, logged in, and admin users based on their permissions. - # get the user's uuid from the cookie - user_uuid = request.COOKIES.get('user_uuid') - user_data = { - 'is_authenticated': request.user.is_authenticated, - 'is_staff': request.user.is_staff, - } +# # get the user's uuid from the cookie +# user_uuid = request.COOKIES.get('user_uuid') +# user_data = { +# 'is_authenticated': request.user.is_authenticated, +# 'is_staff': request.user.is_staff, +# } - redis_instance.set(f"presence_{user_uuid}", json.dumps(user_data), ex=300) +# redis_instance.set(f"presence_{user_uuid}", json.dumps(user_data), ex=300) - # get all online users - online_now = redis_instance.keys('presence_*') +# # get all online users +# online_now = redis_instance.keys('presence_*') - # separate online users into anonymous, logged in, and admin users - anonymous_users = [] - logged_in_users = [] - admin_users = [] +# # separate online users into anonymous, logged in, and admin users +# anonymous_users = [] +# logged_in_users = [] +# admin_users = [] - for user in online_now: - user_data = redis_instance.get(user) - user_data = json.loads(user_data) - if user_data['is_authenticated'] == False and user_data['is_staff'] == False: - anonymous_users.append(user_data) - elif user_data['is_authenticated'] == True and user_data['is_staff'] == False: - logged_in_users.append(user_data) - if user_data['is_staff'] == True: - admin_users.append(user_data) +# for user in online_now: +# user_data = redis_instance.get(user) +# user_data = json.loads(user_data) +# if user_data['is_authenticated'] == False and user_data['is_staff'] == False: +# anonymous_users.append(user_data) +# elif user_data['is_authenticated'] == True and user_data['is_staff'] == False: +# logged_in_users.append(user_data) +# if user_data['is_staff'] == True: +# admin_users.append(user_data) - an = len(anonymous_users) - lo = len(logged_in_users) - ad = len(admin_users) - if user_uuid is not None: - an = max((an - 1), 0) if lo + ad > 0 else max(an - 1, 1) +# an = len(anonymous_users) +# lo = len(logged_in_users) +# ad = len(admin_users) +# if user_uuid is not None: +# an = max((an - 1), 0) if lo + ad > 0 else max(an - 1, 1) - return { - 'anonymous_users': an, - 'logged_in_users': lo, - 'admin_users': ad, - } +# return { +# 'anonymous_users': an, +# 'logged_in_users': lo, +# 'admin_users': ad, +# } -- cgit v1.2.3