Skip to content

Commit c8a9e7e

Browse files
committed
drop unnecesary dependencies
1 parent f570190 commit c8a9e7e

File tree

3 files changed

+21
-9
lines changed

3 files changed

+21
-9
lines changed

services/web/server/src/simcore_service_webserver/users/_tokens_service.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
import sqlalchemy as sa
66
from aiohttp import web
77
from models_library.users import UserID, UserThirdPartyToken
8-
from models_library.utils.fastapi_encoders import jsonable_encoder
98
from sqlalchemy import and_, literal_column
109

1110
from ..db.models import tokens
@@ -21,7 +20,7 @@ async def create_token(
2120
tokens.insert().values(
2221
user_id=user_id,
2322
token_service=token.service,
24-
token_data=jsonable_encoder(token),
23+
token_data=token.model_dump(mode="json"),
2524
)
2625
)
2726
return token

services/web/server/src/simcore_service_webserver/users/_users_repository.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
UsersRepo,
2828
generate_alternative_username,
2929
)
30+
from sqlalchemy import delete
3031
from sqlalchemy.engine.row import Row
3132
from sqlalchemy.ext.asyncio import AsyncConnection, AsyncEngine
3233

@@ -328,6 +329,21 @@ async def get_user_billing_details(
328329
return UserBillingDetails.model_validate(row)
329330

330331

332+
async def delete_user_by_id(
333+
engine: AsyncEngine, connection: AsyncConnection | None = None, *, user_id: UserID
334+
) -> bool:
335+
async with pass_or_acquire_connection(engine, connection) as conn:
336+
result = await conn.execute(
337+
delete(users)
338+
.where(users.c.id == user_id)
339+
.returning(users.c.id) # Return the ID of the deleted row otherwise None
340+
)
341+
deleted_user = result.fetchone()
342+
343+
# If no row was deleted, the user did not exist
344+
return bool(deleted_user)
345+
346+
331347
#
332348
# USER PROFILE
333349
#

services/web/server/src/simcore_service_webserver/users/_users_service.py

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
)
2222

2323
from ..db.plugin import get_asyncpg_engine
24-
from ..login.storage import AsyncpgStorage, get_plugin_storage
2524
from ..security.api import clean_auth_policy_cache
2625
from . import _preferences_api, _users_repository
2726
from ._common.models import (
@@ -276,17 +275,15 @@ async def delete_user_without_projects(app: web.Application, user_id: UserID) ->
276275
# otherwise this function will raise asyncpg.exceptions.ForeignKeyViolationError
277276
# Consider "marking" users as deleted and havning a background job that
278277
# cleans it up
279-
# TODO: upgrade!!!
280-
db: AsyncpgStorage = get_plugin_storage(app)
281-
user = await db.get_user({"id": user_id})
282-
if not user:
278+
is_deleted = await _users_repository.delete_user_by_id(
279+
engine=get_asyncpg_engine(app), user_id=user_id
280+
)
281+
if not is_deleted:
283282
_logger.warning(
284283
"User with id '%s' could not be deleted because it does not exist", user_id
285284
)
286285
return
287286

288-
await db.delete_user(dict(user))
289-
290287
# This user might be cached in the auth. If so, any request
291288
# with this user-id will get thru producing unexpected side-effects
292289
await clean_auth_policy_cache(app)

0 commit comments

Comments
 (0)