Skip to content

Commit de80c9a

Browse files
committed
importing user_services
1 parent fe543b7 commit de80c9a

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+126
-107
lines changed

services/web/server/src/simcore_service_webserver/conversations/_conversation_message_service.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
from models_library.users import UserID
1818

1919
# Import or define SocketMessageDict
20-
from ..users.api import get_user_primary_group_id
20+
from ..users import users_service
2121
from . import _conversation_message_repository
2222
from ._conversation_service import _get_recipients
2323
from ._socketio import (
@@ -39,7 +39,7 @@ async def create_message(
3939
content: str,
4040
type_: ConversationMessageType,
4141
) -> ConversationMessageGetDB:
42-
_user_group_id = await get_user_primary_group_id(app, user_id=user_id)
42+
_user_group_id = await users_service.get_user_primary_group_id(app, user_id=user_id)
4343

4444
created_message = await _conversation_message_repository.create(
4545
app,
@@ -110,7 +110,7 @@ async def delete_message(
110110
message_id=message_id,
111111
)
112112

113-
_user_group_id = await get_user_primary_group_id(app, user_id=user_id)
113+
_user_group_id = await users_service.get_user_primary_group_id(app, user_id=user_id)
114114

115115
await notify_conversation_message_deleted(
116116
app,

services/web/server/src/simcore_service_webserver/conversations/_conversation_service.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@
2222
notify_conversation_updated,
2323
)
2424
from ..projects._groups_repository import list_project_groups
25+
from ..users import users_service
2526
from ..users._users_service import get_users_in_group
26-
from ..users.api import get_user_primary_group_id
2727
from . import _conversation_repository
2828

2929
_logger = logging.getLogger(__name__)
@@ -52,7 +52,7 @@ async def create_conversation(
5252
if project_uuid is None:
5353
raise NotImplementedError
5454

55-
_user_group_id = await get_user_primary_group_id(app, user_id=user_id)
55+
_user_group_id = await users_service.get_user_primary_group_id(app, user_id=user_id)
5656

5757
created_conversation = await _conversation_repository.create(
5858
app,
@@ -121,7 +121,7 @@ async def delete_conversation(
121121
conversation_id=conversation_id,
122122
)
123123

124-
_user_group_id = await get_user_primary_group_id(app, user_id=user_id)
124+
_user_group_id = await users_service.get_user_primary_group_id(app, user_id=user_id)
125125

126126
await notify_conversation_deleted(
127127
app,

services/web/server/src/simcore_service_webserver/exporter/_handlers.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
from ..projects._projects_service import create_user_notification_cb
1919
from ..redis import get_redis_lock_manager_client_sdk
2020
from ..security.decorators import permission_required
21-
from ..users.api import get_user_fullname
21+
from ..users.users_service import get_user_fullname
2222
from ._formatter.archive import get_sds_archive_path
2323
from .exceptions import SDSException
2424
from .utils import CleanupFileResponse

services/web/server/src/simcore_service_webserver/folders/_folders_service.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
from pydantic import NonNegativeInt
1414

1515
from ..projects._projects_service import delete_project_by_user
16-
from ..users.api import get_user
16+
from ..users.users_service import get_user
1717
from ..workspaces.api import check_user_workspace_access
1818
from ..workspaces.errors import (
1919
WorkspaceAccessForbiddenError,

services/web/server/src/simcore_service_webserver/folders/_workspaces_repository.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
from ..projects import _groups_repository as projects_groups_repository
1313
from ..projects import _projects_repository as _projects_repository
1414
from ..projects._access_rights_service import check_user_project_permission
15-
from ..users.api import get_user
15+
from ..users import users_service
1616
from ..workspaces.api import check_user_workspace_access
1717
from . import _folders_repository
1818

@@ -122,7 +122,7 @@ async def move_folder_into_workspace(
122122
)
123123

124124
# 9. Remove all project permissions, leave only the user who moved the project
125-
user = await get_user(app, user_id=user_id)
125+
user = await users_service.get_user(app, user_id=user_id)
126126
for project_id in project_ids:
127127
await projects_groups_repository.delete_all_project_groups(
128128
app, connection=conn, project_id=project_id

services/web/server/src/simcore_service_webserver/functions/_functions_repository.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@
8888

8989
from ..db.plugin import get_asyncpg_engine
9090
from ..groups.api import list_all_user_groups_ids
91-
from ..users.api import get_user_primary_group_id
91+
from ..users import users_service
9292

9393
_FUNCTIONS_TABLE_COLS = get_columns_from_db_model(functions_table, RegisteredFunctionDB)
9494
_FUNCTION_JOBS_TABLE_COLS = get_columns_from_db_model(
@@ -148,7 +148,9 @@ async def create_function( # noqa: PLR0913
148148

149149
registered_function = RegisteredFunctionDB.model_validate(row)
150150

151-
user_primary_group_id = await get_user_primary_group_id(app, user_id=user_id)
151+
user_primary_group_id = await users_service.get_user_primary_group_id(
152+
app, user_id=user_id
153+
)
152154
await set_group_permissions(
153155
app,
154156
connection=transaction,

services/web/server/src/simcore_service_webserver/garbage_collector/_core_guests.py

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,7 @@
1919
from ..projects.exceptions import ProjectDeleteError, ProjectNotFoundError
2020
from ..redis import get_redis_lock_manager_client
2121
from ..resource_manager.registry import RedisResourceRegistry
22-
from ..users import exceptions
23-
from ..users.api import (
24-
delete_user_without_projects,
25-
get_guest_user_ids_and_names,
26-
get_user_primary_group_id,
27-
get_user_role,
28-
)
22+
from ..users import exceptions, users_service
2923
from ..users.exceptions import UserNotFoundError
3024
from ._core_utils import get_new_project_owner_gid, replace_current_owner
3125
from .settings import GUEST_USER_RC_LOCK_FORMAT
@@ -48,7 +42,7 @@ async def _delete_all_projects_for_user(app: web.Application, user_id: int) -> N
4842
"""
4943
# recover user's primary_gid
5044
try:
51-
project_owner_primary_gid = await get_user_primary_group_id(
45+
project_owner_primary_gid = await users_service.get_user_primary_group_id(
5246
app=app, user_id=user_id
5347
)
5448
except exceptions.UserNotFoundError:
@@ -149,7 +143,7 @@ async def remove_guest_user_with_all_its_resources(
149143
"""Removes a GUEST user with all its associated projects and S3/MinIO files"""
150144

151145
try:
152-
user_role: UserRole = await get_user_role(app, user_id=user_id)
146+
user_role: UserRole = await users_service.get_user_role(app, user_id=user_id)
153147
if user_role > UserRole.GUEST:
154148
# NOTE: This acts as a protection barrier to avoid removing resources to more
155149
# priviledge users
@@ -165,7 +159,7 @@ async def remove_guest_user_with_all_its_resources(
165159
"Deleting user %s because it is a GUEST",
166160
f"{user_id=}",
167161
)
168-
await delete_user_without_projects(app, user_id)
162+
await users_service.delete_user_without_projects(app, user_id)
169163

170164
except (
171165
DatabaseError,
@@ -205,8 +199,8 @@ async def remove_users_manually_marked_as_guests(
205199
}
206200

207201
# Prevent creating this list if a guest user
208-
guest_users: list[tuple[UserID, UserNameID]] = await get_guest_user_ids_and_names(
209-
app
202+
guest_users: list[tuple[UserID, UserNameID]] = (
203+
await users_service.get_guest_user_ids_and_names(app)
210204
)
211205

212206
for guest_user_id, guest_user_name in guest_users:
@@ -246,3 +240,8 @@ async def remove_users_manually_marked_as_guests(
246240
app=app,
247241
user_id=guest_user_id,
248242
)
243+
244+
await remove_guest_user_with_all_its_resources(
245+
app=app,
246+
user_id=guest_user_id,
247+
)

services/web/server/src/simcore_service_webserver/garbage_collector/_core_orphans.py

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
)
2222
from ..projects.api import has_user_project_access_rights
2323
from ..resource_manager.registry import RedisResourceRegistry
24-
from ..users.api import get_user_role
24+
from ..users import users_service
2525
from ..users.exceptions import UserNotFoundError
2626

2727
_logger = logging.getLogger(__name__)
@@ -38,17 +38,21 @@ async def _remove_service(
3838
save_service_state = False
3939
else:
4040
try:
41-
if await get_user_role(app, user_id=service.user_id) <= UserRole.GUEST:
42-
save_service_state = False
43-
else:
44-
save_service_state = await has_user_project_access_rights(
41+
user_role: UserRole = await users_service.get_user_role(
42+
app, user_id=service.user_id
43+
)
44+
except (UserNotFoundError, ValueError):
45+
save_service_state = False
46+
else:
47+
save_service_state = (
48+
user_role > UserRole.GUEST
49+
and await has_user_project_access_rights(
4550
app,
4651
project_id=service.project_id,
4752
user_id=service.user_id,
4853
permission="write",
4954
)
50-
except (UserNotFoundError, ValueError):
51-
save_service_state = False
55+
)
5256

5357
with log_catch(_logger, reraise=False), log_context(
5458
_logger,

services/web/server/src/simcore_service_webserver/garbage_collector/_core_utils.py

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
delete_project_group_without_checking_permissions,
1818
)
1919
from ..projects.exceptions import ProjectNotFoundError
20-
from ..users.api import get_user, get_user_id_from_gid, get_users_in_group
20+
from ..users import users_service
2121
from ..users.exceptions import UserNotFoundError
2222

2323
_logger = logging.getLogger(__name__)
@@ -34,15 +34,17 @@ async def _fetch_new_project_owner_from_groups(
3434
# go through user_to_groups table and fetch all uid for matching gid
3535
for group_gid in standard_groups:
3636
# remove the current owner from the bunch
37-
target_group_users = await get_users_in_group(app=app, gid=int(group_gid)) - {
38-
user_id
39-
}
37+
target_group_users = await users_service.get_users_in_group(
38+
app=app, gid=int(group_gid)
39+
) - {user_id}
4040
_logger.info("Found group users '%s'", target_group_users)
4141

4242
for possible_user_id in target_group_users:
4343
# check if the possible_user is still present in the db
4444
try:
45-
possible_user = await get_user(app=app, user_id=possible_user_id)
45+
possible_user = await users_service.get_user(
46+
app=app, user_id=possible_user_id
47+
)
4648
return int(possible_user["primary_gid"])
4749
except UserNotFoundError: # noqa: PERF203
4850
_logger.warning(
@@ -130,7 +132,7 @@ async def replace_current_owner(
130132
project: dict,
131133
) -> None:
132134
try:
133-
new_project_owner_id = await get_user_id_from_gid(
135+
new_project_owner_id = await users_service.get_user_id_from_gid(
134136
app=app, primary_gid=new_project_owner_gid
135137
)
136138

services/web/server/src/simcore_service_webserver/garbage_collector/_tasks_users.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515

1616
from ..login import login_service
1717
from ..security import security_service
18-
from ..users.api import update_expired_users
18+
from ..users import users_service
1919
from ._tasks_utils import CleanupContextFunc, periodic_task_lifespan
2020

2121
_logger = logging.getLogger(__name__)
@@ -45,7 +45,7 @@ async def notify_user_logout_all_sessions(
4545

4646
async def _update_expired_users(app: web.Application):
4747

48-
if updated := await update_expired_users(app):
48+
if updated := await users_service.update_expired_users(app):
4949
# expired users might be cached in the auth. If so, any request
5050
# with this user-id will get thru producing unexpected side-effects
5151
await security_service.clean_auth_policy_cache(app)

0 commit comments

Comments
 (0)