From 312a866e6f787f61478e00d896b206d913b87121 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Daniel=20G=C3=B6bel?= <dgoebel@techfak.uni-bielefeld.de>
Date: Wed, 19 Jun 2024 08:53:46 +0000
Subject: [PATCH] Fix Dockerfile and make gravatar url in use schema mandatory

#13
---
 Dockerfile                            | 2 +-
 Dockerfile-Gunicorn                   | 1 +
 clowm/schemas/user.py                 | 8 +++++---
 clowm/tests/unit/test_gravatar_url.py | 5 ++++-
 4 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/Dockerfile b/Dockerfile
index 5503c9f..bfe5fac 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -18,7 +18,7 @@ WORKDIR /home/worker/code
 ENV PYTHONPATH=/home/worker/code
 ENV PATH="/home/worker/.local/bin:${PATH}"
 
-COPY ../start_service_uvicorn.sh ./entrypoint.sh
+COPY ./start_service_uvicorn.sh ./entrypoint.sh
 COPY scripts/prestart.sh ./prestart.sh
 CMD ["./entrypoint.sh"]
 
diff --git a/Dockerfile-Gunicorn b/Dockerfile-Gunicorn
index 1dbbea7..8bfe05f 100644
--- a/Dockerfile-Gunicorn
+++ b/Dockerfile-Gunicorn
@@ -1,5 +1,6 @@
 FROM python:3.12-slim
 ENV PORT=8000
+ENV OTEL_INSTRUMENTATION_HTTP_CAPTURE_HEADERS_SANITIZE_FIELDS="set-cookie"
 EXPOSE $PORT
 WORKDIR /app/
 ENV PYTHONPATH=/app
diff --git a/clowm/schemas/user.py b/clowm/schemas/user.py
index fbc2c33..9ef39d9 100644
--- a/clowm/schemas/user.py
+++ b/clowm/schemas/user.py
@@ -45,12 +45,14 @@ class UserOutExtended(UserOut, UserRoles):
     invitation_token_created_at: int | None = Field(
         None, description="Timestamp when the invitation token was created as UNIX timestamp"
     )
-    gravatar_url: URL | None = Field(default=None, description="URL to the gravatar avatar based on the users email")
+    gravatar_url: URL = Field(description="URL to the gravatar avatar based on the users email")
 
     @staticmethod
-    def generate_gravatar_url(email: str | None) -> AnyHttpUrl | None:
+    def generate_gravatar_url(email: str | None) -> AnyHttpUrl:
         if email is None:
-            return None
+            return AnyHttpUrl(
+                "https://gravatar.com/avatar/87a8c45825eb709ee8e453d2c0f8154e1b9bf4b45bb9b81b7662177340aa9d38"
+            )
         return AnyHttpUrl(f"https://gravatar.com/avatar/{sha256(email.strip().lower().encode('utf-8')).hexdigest()}")
 
     @staticmethod
diff --git a/clowm/tests/unit/test_gravatar_url.py b/clowm/tests/unit/test_gravatar_url.py
index 9c9b2ab..da1dea7 100644
--- a/clowm/tests/unit/test_gravatar_url.py
+++ b/clowm/tests/unit/test_gravatar_url.py
@@ -3,7 +3,10 @@ from clowm.schemas.user import UserOutExtended
 
 class TestGravatar:
     def test_gravatar_url_for_none_email(self) -> None:
-        assert UserOutExtended.generate_gravatar_url(email=None) is None
+        assert (
+            str(UserOutExtended.generate_gravatar_url(email=None))
+            == "https://gravatar.com/avatar/87a8c45825eb709ee8e453d2c0f8154e1b9bf4b45bb9b81b7662177340aa9d38"
+        )
 
     def test_gravatar_url_for_email(self) -> None:
         assert (
-- 
GitLab