aboutsummaryrefslogtreecommitdiff
path: root/middleware
diff options
context:
space:
mode:
authorBobby <[email protected]>2024-12-16 18:38:05 +0000
committerBobby <[email protected]>2024-12-16 18:38:05 +0000
commitea8f5e8517161c1bd52f61198138dfd2fc72f8e2 (patch)
tree19dd955137c8c6bb9c1143bbced320737cd93b09 /middleware
parent04788ddd83c5e80a09a468d07427f0e365db71d7 (diff)
downloadthatcomputerscientist-ea8f5e8517161c1bd52f61198138dfd2fc72f8e2.tar.xz
thatcomputerscientist-ea8f5e8517161c1bd52f61198138dfd2fc72f8e2.zip
its all in a state of chaos, but it shall be working soon
Diffstat (limited to 'middleware')
-rw-r--r--middleware/userprofilemiddleware.py6
-rw-r--r--middleware/uuidmiddleware.py134
2 files changed, 72 insertions, 68 deletions
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,
+# }