Add email field to UserContext
Extract email from session cookie and JWT claims. Store email in cookie data. Needed for coop fragment composition (auth-menu). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -21,6 +21,7 @@ class UserContext:
|
||||
actor_id: str # Full actor ID like "@user@server.com"
|
||||
token: Optional[str] = None
|
||||
l2_server: Optional[str] = None # L2 server URL for this user
|
||||
email: Optional[str] = None # User's email address
|
||||
|
||||
@property
|
||||
def display_name(self) -> str:
|
||||
@@ -54,6 +55,7 @@ def get_user_from_cookie(request: Request) -> Optional[UserContext]:
|
||||
return UserContext(
|
||||
username=username,
|
||||
actor_id=actor_id,
|
||||
email=data.get("email", ""),
|
||||
)
|
||||
except (json.JSONDecodeError, ValueError, KeyError):
|
||||
pass
|
||||
@@ -71,6 +73,7 @@ def get_user_from_cookie(request: Request) -> Optional[UserContext]:
|
||||
username=username,
|
||||
actor_id=actor_id or "",
|
||||
token=token,
|
||||
email=claims.get("email", ""),
|
||||
)
|
||||
|
||||
return None
|
||||
@@ -249,10 +252,13 @@ def set_auth_cookie(response: Any, user: UserContext, max_age: int = 86400 * 30)
|
||||
user: User context to store
|
||||
max_age: Cookie max age in seconds (default 30 days)
|
||||
"""
|
||||
data = json.dumps({
|
||||
cookie_data = {
|
||||
"username": user.username,
|
||||
"actor_id": user.actor_id,
|
||||
})
|
||||
}
|
||||
if user.email:
|
||||
cookie_data["email"] = user.email
|
||||
data = json.dumps(cookie_data)
|
||||
cookie_value = base64.b64encode(data.encode()).decode()
|
||||
|
||||
response.set_cookie(
|
||||
|
||||
Reference in New Issue
Block a user