Skip to content

Commit 533c02e

Browse files
authored
♻️ webserver: security Domain Refactoring (#7867)
1 parent 3148d13 commit 533c02e

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

+347
-236
lines changed

packages/pytest-simcore/src/pytest_simcore/helpers/webserver_login.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
get_plugin_storage,
1818
)
1919
from simcore_service_webserver.products.products_service import list_products
20-
from simcore_service_webserver.security.api import clean_auth_policy_cache
20+
from simcore_service_webserver.security import security_service
2121
from yarl import URL
2222

2323
from .assert_checks import assert_status
@@ -187,7 +187,7 @@ async def __aexit__(self, *args):
187187
assert self.client.app
188188
# NOTE: cache key is based on an email. If the email is
189189
# reused during the test, then it creates quite some noise
190-
await clean_auth_policy_cache(self.client.app)
190+
await security_service.clean_auth_policy_cache(self.client.app)
191191
return await super().__aexit__(*args)
192192

193193

services/web/server/src/simcore_service_webserver/application.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77

88
from aiohttp import web
99
from servicelib.aiohttp.application import create_safe_application
10-
from simcore_service_webserver.tasks.plugin import setup_tasks
1110

1211
from ._meta import WELCOME_DB_LISTENER_MSG, WELCOME_GC_MSG, WELCOME_MSG, info
1312
from .activity.plugin import setup_activity
@@ -49,6 +48,7 @@
4948
from .storage.plugin import setup_storage
5049
from .studies_dispatcher.plugin import setup_studies_dispatcher
5150
from .tags.plugin import setup_tags
51+
from .tasks.plugin import setup_tasks
5252
from .tracing import setup_app_tracing
5353
from .trash.plugin import setup_trash
5454
from .users.plugin import setup_users

services/web/server/src/simcore_service_webserver/catalog/_catalog_rest_client_service.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,14 @@
2323
from pydantic import TypeAdapter
2424
from servicelib.aiohttp.client_session import get_client_session
2525
from servicelib.rest_constants import X_PRODUCT_NAME_HEADER
26-
from simcore_service_webserver.catalog.errors import (
27-
CatalogConnectionError,
28-
CatalogResponseError,
29-
)
3026
from yarl import URL
3127

3228
from .._meta import api_version_prefix
3329
from ._models import ServiceKeyVersionDict
30+
from .errors import (
31+
CatalogConnectionError,
32+
CatalogResponseError,
33+
)
3434
from .settings import CatalogSettings, get_plugin_settings
3535

3636
_logger = logging.getLogger(__name__)

services/web/server/src/simcore_service_webserver/director_v2/_director_v2_service.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
GroupExtraProperties,
2222
GroupExtraPropertiesRepo,
2323
)
24-
from simcore_service_webserver.director_v2._client import DirectorV2RestClient
2524

2625
from ..application_settings import get_application_settings
2726
from ..db.plugin import get_database_engine
@@ -31,6 +30,7 @@
3130
from ..users import preferences_api as user_preferences_service
3231
from ..users.exceptions import UserDefaultWalletNotFoundError
3332
from ..wallets import api as wallets_service
33+
from ._client import DirectorV2RestClient
3434
from ._client_base import DataType, request_director_v2
3535
from .exceptions import ComputationNotFoundError, DirectorV2ServiceError
3636
from .settings import DirectorV2Settings, get_plugin_settings

services/web/server/src/simcore_service_webserver/functions/_controller/_functions_rest.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,12 @@
1111
handle_validation_as_http_error,
1212
parse_request_path_parameters_as,
1313
)
14-
from simcore_service_webserver.utils_aiohttp import envelope_json_response
1514

1615
from ..._meta import API_VTAG as VTAG
1716
from ...login.decorators import login_required
1817
from ...models import AuthenticatedRequestContext
1918
from ...security.decorators import permission_required
19+
from ...utils_aiohttp import envelope_json_response
2020
from .. import _functions_service
2121
from ._functions_rest_exceptions import handle_rest_requests_exceptions
2222
from ._functions_rest_schemas import FunctionPathParams

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,13 +65,13 @@
6565
get_columns_from_db_model,
6666
transaction_context,
6767
)
68-
from simcore_service_webserver.groups.api import list_all_user_groups_ids
69-
from simcore_service_webserver.users.api import get_user_primary_group_id
7068
from sqlalchemy import Text, cast
7169
from sqlalchemy.ext.asyncio import AsyncConnection
7270
from sqlalchemy.sql import func
7371

7472
from ..db.plugin import get_asyncpg_engine
73+
from ..groups.api import list_all_user_groups_ids
74+
from ..users.api import get_user_primary_group_id
7575

7676
_FUNCTIONS_TABLE_COLS = get_columns_from_db_model(functions_table, RegisteredFunctionDB)
7777
_FUNCTION_JOBS_TABLE_COLS = get_columns_from_db_model(

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
from tenacity.wait import wait_exponential
1616

1717
from ..login import login_service
18-
from ..security.api import clean_auth_policy_cache
18+
from ..security import security_service
1919
from ..users.api import update_expired_users
2020

2121
_logger = logging.getLogger(__name__)
@@ -62,7 +62,7 @@ async def _update_expired_users(app: web.Application):
6262
if updated := await update_expired_users(app):
6363
# expired users might be cached in the auth. If so, any request
6464
# with this user-id will get thru producing unexpected side-effects
65-
await clean_auth_policy_cache(app)
65+
await security_service.clean_auth_policy_cache(app)
6666

6767
# broadcast force logout of user_id
6868
for user_id in updated:

services/web/server/src/simcore_service_webserver/licenses/_common/exceptions_handlers.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,14 @@
11
import logging
22

33
from servicelib.aiohttp import status
4-
from simcore_service_webserver.wallets.errors import WalletAccessForbiddenError
54

65
from ...exception_handling import (
76
ExceptionToHttpErrorMap,
87
HttpErrorInfo,
98
exception_handling_decorator,
109
to_exceptions_handlers_map,
1110
)
12-
from ...wallets.errors import WalletNotEnoughCreditsError
11+
from ...wallets.errors import WalletAccessForbiddenError, WalletNotEnoughCreditsError
1312
from ..errors import LicensedItemNotFoundError, LicensedItemPricingPlanMatchError
1413

1514
_logger = logging.getLogger(__name__)

services/web/server/src/simcore_service_webserver/licenses/_itis_vip_syncer_service.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,12 @@
99
from servicelib.async_utils import cancel_wait_task
1010
from servicelib.background_task_utils import exclusive_periodic
1111
from servicelib.logging_utils import log_catch, log_context
12-
from simcore_service_webserver.licenses import (
12+
13+
from ..redis import get_redis_lock_manager_client_sdk, setup_redis
14+
from . import (
1315
_itis_vip_service,
1416
_licensed_resources_service,
1517
)
16-
17-
from ..redis import get_redis_lock_manager_client_sdk, setup_redis
1818
from ._itis_vip_models import CategoryTuple, ItisVipData, ItisVipResourceData
1919
from ._licensed_resources_service import RegistrationState
2020

@@ -32,10 +32,10 @@ async def sync_licensed_resources(
3232
with log_context(
3333
_logger, logging.INFO, "Fetching %s and validating", category_url
3434
), log_catch(_logger, reraise=True):
35-
vip_data_items: list[
36-
ItisVipData
37-
] = await _itis_vip_service.get_category_items(
38-
http_client, category_url
35+
vip_data_items: list[ItisVipData] = (
36+
await _itis_vip_service.get_category_items(
37+
http_client, category_url
38+
)
3939
)
4040

4141
# REGISTRATION

services/web/server/src/simcore_service_webserver/login/_auth_service.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@
66
from simcore_postgres_database.models.users import UserStatus
77
from simcore_postgres_database.utils_repos import transaction_context
88
from simcore_postgres_database.utils_users import UsersRepo
9-
from simcore_service_webserver.db.plugin import get_asyncpg_engine
109

10+
from ..db.plugin import get_asyncpg_engine
1111
from ..groups import api as groups_service
1212
from ..products.models import Product
13-
from ..security import api as security_service
13+
from ..security import security_service
1414
from . import _login_service
1515
from ._constants import MSG_UNKNOWN_EMAIL, MSG_WRONG_PASSWORD
1616
from ._login_repository_legacy import AsyncpgStorage, get_plugin_storage

0 commit comments

Comments
 (0)