Skip to content

Commit 377b43f

Browse files
committed
✨ [Users] Enhance admin user listing with invited_by field and registration status
1 parent 3307c30 commit 377b43f

File tree

4 files changed

+24
-42
lines changed

4 files changed

+24
-42
lines changed

packages/postgres-database/src/simcore_postgres_database/migration/versions/5a51c6cc961d_new_account_request_status_column.py

Lines changed: 0 additions & 38 deletions
This file was deleted.

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

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -546,6 +546,14 @@ async def list_users_for_admin(
546546
)
547547

548548
# Main query to get user data
549+
invited_by = (
550+
sa.select(
551+
users.c.name,
552+
)
553+
.where(users_pre_registration_details.c.created_by == users.c.id)
554+
.label("invited_by")
555+
)
556+
549557
main_query = (
550558
sa.select(
551559
users.c.id.label("user_id"),
@@ -571,14 +579,21 @@ async def list_users_for_admin(
571579
users.c.status,
572580
users.c.created,
573581
users_pre_registration_details.c.institution,
574-
users_pre_registration_details.c.pre_phone.label("phone"),
582+
sa.case(
583+
(
584+
users.c.phone.is_(None),
585+
users_pre_registration_details.c.pre_phone,
586+
),
587+
else_=users.c.phone,
588+
).label("phone"),
575589
users_pre_registration_details.c.address,
576590
users_pre_registration_details.c.city,
577591
users_pre_registration_details.c.state,
578592
users_pre_registration_details.c.postal_code,
579593
users_pre_registration_details.c.country,
580594
users_pre_registration_details.c.extras,
581595
users_pre_registration_details.c.account_request_status,
596+
invited_by,
582597
)
583598
.select_from(joined_tables)
584599
.where(where_clause)

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

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,7 @@ async def list_users_as_admin(
222222

223223
# Get user data with pagination
224224
users_data, total_count = await _users_repository.list_users_for_admin(
225-
engine=engine, filter_approved=filter_approved, limit=limit, offset=offset
225+
engine, filter_approved=filter_approved, limit=limit, offset=offset
226226
)
227227

228228
# For each user, append additional information if needed
@@ -239,6 +239,12 @@ async def list_users_as_admin(
239239
)
240240
user_dict["products"] = [p.product_name for p in products]
241241

242+
user_dict["registered"] = (
243+
user_id is not None
244+
if user.get("pre_email")
245+
else user.get("status") is not None
246+
)
247+
242248
result.append(user_dict)
243249

244250
return result, total_count

services/web/server/tests/unit/with_dbs/03/test_users.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -773,8 +773,7 @@ async def test_list_users_for_admin(
773773
form_data["email"] = faker.email()
774774

775775
resp = await client.post("/v0/admin/users:pre-register", json=form_data)
776-
assert resp.status == status.HTTP_200_OK
777-
pre_registered_data = await resp.json()
776+
pre_registered_data, _ = await assert_status(resp, status.HTTP_200_OK)
778777
pre_registered_users.append(pre_registered_data)
779778

780779
# Register one of the pre-registered users

0 commit comments

Comments
 (0)