Skip to content

Commit c43cbdf

Browse files
committed
returns pre-registration
1 parent 71c247c commit c43cbdf

File tree

4 files changed

+16
-5
lines changed

4 files changed

+16
-5
lines changed

api/specs/web-server/_users.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
MyProfilePatch,
1616
MyTokenCreate,
1717
MyTokenGet,
18+
ResendConfirmationCode,
1819
UserApprove,
1920
UserForAdminGet,
2021
UserGet,
@@ -180,7 +181,7 @@ async def reject_user_account(_body: UserReject): ...
180181
tags=_extra_tags,
181182
include_in_schema=False, # UNDER DEVELOPMENT
182183
)
183-
async def resend_user_confirmation_email(_body: UserApprove): ...
184+
async def resend_user_confirmation_email(_body: ResendConfirmationCode): ...
184185

185186

186187
@router.get(

packages/models-library/src/models_library/api_schemas_webserver/users.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -294,6 +294,7 @@ class UserForAdminGet(OutputSchema):
294294
] = DEFAULT_FACTORY
295295

296296
# pre-registration
297+
pre_registration_id: int | None
297298
invited_by: str | None = None
298299
account_request_status: AccountRequestStatus | None
299300
account_request_reviewed_by: UserID | None = None

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -729,6 +729,7 @@ async def search_merged_pre_and_registered_users(
729729

730730
async with pass_or_acquire_connection(engine, connection) as conn:
731731
columns = (
732+
users_pre_registration_details.c.id,
732733
users.c.first_name,
733734
users.c.last_name,
734735
users.c.email,
@@ -830,6 +831,7 @@ async def list_merged_pre_and_registered_users(
830831
# We need to left join with users to identify if the pre-registered user is already in the system
831832
pre_reg_query = (
832833
sa.select(
834+
users_pre_registration_details.c.id,
833835
users_pre_registration_details.c.pre_email.label("email"),
834836
users_pre_registration_details.c.pre_first_name.label("first_name"),
835837
users_pre_registration_details.c.pre_last_name.label("last_name"),
@@ -864,6 +866,7 @@ async def list_merged_pre_and_registered_users(
864866
# Query for users that are associated with the product through groups
865867
users_query = (
866868
sa.select(
869+
sa.literal(None).label("id"),
867870
users.c.email,
868871
users.c.first_name,
869872
users.c.last_name,

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

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,9 @@ async def list_users_for_admin(request: web.Request) -> web.Response:
200200
)
201201

202202
def _to_domain_model(user: dict[str, Any]) -> UserForAdminGet:
203-
return UserForAdminGet(extras=user.pop("extras") or {}, **user)
203+
return UserForAdminGet(
204+
extras=user.pop("extras") or {}, pre_registration_id=user.pop("id"), **user
205+
)
204206

205207
page = Page[UserForAdminGet].model_validate(
206208
paginate_data(
@@ -243,7 +245,7 @@ async def search_users_for_admin(request: web.Request) -> web.Response:
243245
f"/{API_VTAG}/admin/users:pre-register", name="pre_register_user_for_admin"
244246
)
245247
@login_required
246-
@permission_required("admin.users.read")
248+
@permission_required("admin.users.write")
247249
@_handle_users_exceptions
248250
async def pre_register_user_for_admin(request: web.Request) -> web.Response:
249251
req_ctx = UsersRequestContext.model_validate(request)
@@ -273,9 +275,13 @@ async def approve_user_account(request: web.Request) -> web.Response:
273275

274276
if approval_data.invitation:
275277
_logger.debug(
276-
"TODO: User %s is being approved with invitation %s. Generating invitation ... ",
278+
"TODO: User is being approved with invitation %s: \n"
279+
"1. Approve user account\n"
280+
"2. Generate invitation\n"
281+
"3. Store invitation in extras\n"
282+
"4. Send invitation to user %s\n",
283+
approval_data.invitation.model_dump_json(indent=1),
277284
approval_data.email,
278-
approval_data.invitation,
279285
)
280286

281287
# Approve the user account, passing the current user's ID as the reviewer

0 commit comments

Comments
 (0)