unlink user

This commit is contained in:
2025-11-12 15:50:05 -03:00
parent 850f620f78
commit 707b1f5012
9 changed files with 155 additions and 22 deletions

View File

@@ -51,7 +51,7 @@ class OrgMissingError(NotFoundError): ...
@router.post('/<org_id>/users')
def add_user(
def add(
org_id: str,
user: Annotated[User, Body(embed=True)],
org: Annotated[Org, Body(embed=True)],
@@ -67,6 +67,34 @@ def add_user(
return JSONResponse(HTTPStatus.NO_CONTENT)
@router.delete('/<org_id>/users/<user_id>')
def unlink(org_id: str, user_id: str):
with dyn.transact_writer() as transact:
transact.delete(
key=KeyPair(
pk=f'orgmembers#{org_id}',
# Post-migration: uncomment the following line
# pk=f'MEMBER#ORG#{org_id}',
sk=user_id,
)
)
transact.delete(
key=KeyPair(
pk=user_id,
sk=f'orgs#{org_id}',
# Post-migration: uncomment the following line
# pk=f'ORG#{org_id}',
)
)
transact.update(
key=KeyPair(user_id, '0'),
update_expr='DELETE tenant_id :org_id',
expr_attr_values={':org_id': {org_id}},
)
return JSONResponse(HTTPStatus.NO_CONTENT)
def _create_user(user: User, org: Org) -> bool:
now_ = now()
user_id = uuid4()
@@ -79,7 +107,9 @@ def _create_user(user: User, org: Org) -> bool:
'id': user_id,
'sk': '0',
'email_verified': False,
'org_id': {org.id},
'tenant_id': {org.id},
# Post-migration: uncomment the folloing line
# 'org_id': {org.id},
'created_at': now_,
},
)
@@ -116,8 +146,9 @@ def _create_user(user: User, org: Org) -> bool:
transact.put(
item={
'id': user_id,
# Post-migration: rename `orgs` to `ORG`
'sk': f'orgs#{org.id}',
# Post-migration: uncomment the following line
# pk=f'ORG#{org.id}',
'name': org.name,
'cnpj': org.cnpj,
'created_at': now_,
@@ -125,8 +156,9 @@ def _create_user(user: User, org: Org) -> bool:
)
transact.put(
item={
# Post-migration: rename `orgmembers` to `ORGMEMBER`
'id': f'orgmembers#{org.id}',
# Post-migration: uncomment the following line
# pk=f'MEMBER#ORG#{org_id}',
'sk': user_id,
'created_at': now_,
}
@@ -148,10 +180,14 @@ def _add_member(user_id: str, org: Org) -> None:
with dyn.transact_writer() as transact:
transact.update(
key=KeyPair(user_id, '0'),
update_expr='ADD org_id :org_id',
update_expr='ADD tenant_id :org_id',
# Post-migration: uncomment the following line
# update_expr='ADD tenant_id :org_id',
expr_attr_values={
':org_id': {org.id},
},
cond_expr='attribute_exists(sk)',
exc_cls=UserMissingError,
)
transact.put(
item={