This commit is contained in:
2025-04-01 19:15:10 -03:00
parent dbe7a924e2
commit ef4bfc07f3
16 changed files with 197 additions and 44 deletions

View File

@@ -13,27 +13,28 @@ from settings import USER_TABLE
router = Router()
user_layer = DynamoDBPersistenceLayer(USER_TABLE, dynamodb_client)
collect = DynamoDBCollection(user_layer)
user_collect = DynamoDBCollection(user_layer)
LIMIT = 25
@router.get('/', include_in_schema=False)
def me():
def settings():
user: User = router.context['user']
acls = collect.get_items(
acls = user_collect.get_items(
KeyPair(user.id, PrefixKey('acls')),
limit=LIMIT,
)
workspaces = collect.get_items(
tenants = user_collect.get_items(
KeyPair(user.id, PrefixKey('orgs')),
limit=LIMIT,
)
return {
'acls': acls['items'],
'workspaces': workspaces['items'],
# Note: ensure compatibility with search on React's tenant menu
'tenants': [x | {'id': x['sk']} for x in tenants['items']],
}

View File

@@ -33,7 +33,7 @@ class BadRequestError(MissingError, PowertoolsBadRequestError): ...
router = Router()
user_layer = DynamoDBPersistenceLayer(USER_TABLE, dynamodb_client)
collect = DynamoDBCollection(user_layer, exception_cls=BadRequestError)
user_collect = DynamoDBCollection(user_layer, exception_cls=BadRequestError)
elastic_client = Elasticsearch(**ELASTIC_CONN)
@@ -61,7 +61,7 @@ def get_users():
compress=True,
tags=['User'],
summary='Create user',
middlewares=[AuditLogMiddleware('USER_ADD', collect)],
middlewares=[AuditLogMiddleware('USER_ADD', user_collect)],
)
def post_user(payload: User):
return Response(status_code=HTTPStatus.CREATED)
@@ -84,7 +84,7 @@ def patch_reset(id: str, payload: NewPasswordPayload):
summary='Get user',
)
def get_user(id: str):
return collect.get_item(KeyPair(id, '0'))
return user_collect.get_item(KeyPair(id, '0'))
@router.get('/<id>/idp', compress=True, include_in_schema=False)
@@ -99,7 +99,7 @@ def get_idp(id: str):
summary='Get user emails',
)
def get_emails(id: str):
return collect.get_items(
return user_collect.get_items(
KeyPair(id, PrefixKey('emails')),
start_key=router.current_event.get_query_string_value('start_key', None),
)
@@ -112,7 +112,7 @@ def get_emails(id: str):
summary='Get user logs',
)
def get_logs(id: str):
return collect.get_items(
return user_collect.get_items(
# Post-migration: uncomment to enable PartitionKey with a composite key (id with `logs` prefix).
# PartitionKey(ComposeKey(id, prefix='logs')),
PartitionKey(ComposeKey(id, prefix='log', delimiter=':')),
@@ -127,7 +127,7 @@ def get_logs(id: str):
summary='Get user orgs',
)
def get_orgs(id: str):
return collect.get_items(
return user_collect.get_items(
KeyPair(id, PrefixKey('orgs')),
start_key=router.current_event.get_query_string_value('start_key', None),
)