Skip to content

Commit 19f5d7f

Browse files
committed
feat: add account request review fields and update approval workflow in pre-registration details
1 parent f510d06 commit 19f5d7f

File tree

4 files changed

+457
-77
lines changed

4 files changed

+457
-77
lines changed

packages/postgres-database/src/simcore_postgres_database/migration/versions/ba9c4816a31b_new_pre_registration_columns.py

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,22 @@ def upgrade():
4242
nullable=False,
4343
),
4444
)
45+
op.add_column(
46+
"users_pre_registration_details",
47+
sa.Column(
48+
"account_request_reviewed_by",
49+
sa.Integer(),
50+
nullable=True,
51+
),
52+
)
53+
op.add_column(
54+
"users_pre_registration_details",
55+
sa.Column(
56+
"account_request_reviewed_at",
57+
sa.DateTime(timezone=True),
58+
nullable=True,
59+
),
60+
)
4561
op.add_column(
4662
"users_pre_registration_details",
4763
sa.Column("product_name", sa.String(), nullable=True),
@@ -60,6 +76,16 @@ def upgrade():
6076
onupdate="CASCADE",
6177
ondelete="SET NULL",
6278
)
79+
# Add foreign key for account_request_reviewed_by
80+
op.create_foreign_key(
81+
"fk_users_pre_registration_reviewed_by_user_id",
82+
"users_pre_registration_details",
83+
"users",
84+
["account_request_reviewed_by"],
85+
["id"],
86+
onupdate="CASCADE",
87+
ondelete="SET NULL",
88+
)
6389
# Set primary key on id column
6490
op.create_primary_key(
6591
"users_pre_registration_details_pk",
@@ -88,6 +114,11 @@ def downgrade():
88114
"users_pre_registration_details",
89115
type_="primary",
90116
)
117+
op.drop_constraint(
118+
"fk_users_pre_registration_reviewed_by_user_id",
119+
"users_pre_registration_details",
120+
type_="foreignkey",
121+
)
91122
op.drop_constraint(
92123
"fk_users_pre_registration_details_product_name",
93124
"users_pre_registration_details",
@@ -99,6 +130,8 @@ def downgrade():
99130
["pre_email"],
100131
)
101132
op.drop_column("users_pre_registration_details", "product_name")
133+
op.drop_column("users_pre_registration_details", "account_request_reviewed_at")
134+
op.drop_column("users_pre_registration_details", "account_request_reviewed_by")
102135
op.drop_column("users_pre_registration_details", "account_request_status")
103136
op.drop_column("users_pre_registration_details", "id")
104137

packages/postgres-database/src/simcore_postgres_database/models/users_details.py

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,13 +62,31 @@
6262
doc="Phone provided on pre-registration"
6363
"NOTE: this is not copied upon registration since it needs to be confirmed",
6464
),
65-
# Approval status of the account request
65+
# Account Request
6666
sa.Column(
6767
"account_request_status",
6868
sa.Enum(AccountRequestStatus),
6969
nullable=False,
7070
server_default=AccountRequestStatus.PENDING.value,
71-
doc="Status of approval of the account request",
71+
doc="Status of review for the account request",
72+
),
73+
sa.Column(
74+
"account_request_reviewed_by",
75+
sa.Integer,
76+
sa.ForeignKey(
77+
users.c.id,
78+
onupdate=RefActions.CASCADE,
79+
ondelete=RefActions.SET_NULL,
80+
name="fk_users_pre_registration_reviewed_by_user_id",
81+
),
82+
nullable=True,
83+
doc="Tracks who approved or rejected the account request",
84+
),
85+
sa.Column(
86+
"account_request_reviewed_at",
87+
sa.DateTime(timezone=True),
88+
nullable=True,
89+
doc="Timestamp when the account request was reviewed",
7290
),
7391
# Product the user is requesting access to
7492
sa.Column(

0 commit comments

Comments
 (0)