Compare commits

..

No commits in common. "0b285e6ef079605fa1f56f193cd546185c000f16" and "6d6c4ee35d8a89d06528426dc1f947a5b6da283a" have entirely different histories.

2 changed files with 2 additions and 18 deletions

View File

@ -101,9 +101,7 @@ class DatabaseInterface(ABC):
"""Create a new user.""" """Create a new user."""
@abstractmethod @abstractmethod
async def update_user_display_name( async def update_user_display_name(self, user_uuid: UUID, display_name: str) -> None:
self, user_uuid: UUID, display_name: str
) -> None:
"""Update a user's display name.""" """Update a user's display name."""
# Role operations # Role operations
@ -337,7 +335,6 @@ class DatabaseInterface(ABC):
2. Optionally delete old session (e.g. reset token) if provided 2. Optionally delete old session (e.g. reset token) if provided
3. Optionally update user's display name 3. Optionally update user's display name
4. Insert new session referencing the credential 4. Insert new session referencing the credential
5. Update user's last_seen and increment visits (treat as a login)
""" """

View File

@ -271,9 +271,7 @@ class DB(DatabaseInterface):
async with self.session() as session: async with self.session() as session:
session.add(UserModel.from_dataclass(user)) session.add(UserModel.from_dataclass(user))
async def update_user_display_name( async def update_user_display_name(self, user_uuid: UUID, display_name: str) -> None:
self, user_uuid: UUID, display_name: str
) -> None:
async with self.session() as session: async with self.session() as session:
stmt = ( stmt = (
update(UserModel) update(UserModel)
@ -414,11 +412,6 @@ class DB(DatabaseInterface):
) -> None: ) -> None:
"""Atomic credential + (optional old session delete) + (optional rename) + new session.""" """Atomic credential + (optional old session delete) + (optional rename) + new session."""
async with self.session() as session: async with self.session() as session:
# Ensure credential has last_used / last_verified for immediate login semantics
if credential.last_used is None:
credential.last_used = credential.created_at
if credential.last_verified is None:
credential.last_verified = credential.last_used
# Insert credential # Insert credential
session.add( session.add(
CredentialModel( CredentialModel(
@ -455,12 +448,6 @@ class DB(DatabaseInterface):
info=session_info, info=session_info,
) )
) )
# Login side-effects: update user analytics (last_seen + visits increment)
await session.execute(
update(UserModel)
.where(UserModel.uuid == user_uuid.bytes)
.values(last_seen=credential.last_used, visits=UserModel.visits + 1)
)
async def delete_credential(self, uuid: UUID, user_uuid: UUID) -> None: async def delete_credential(self, uuid: UUID, user_uuid: UUID) -> None:
async with self.session() as session: async with self.session() as session: