feat(users): add user administration and password management
This commit is contained in:
parent
47f54d3461
commit
b584e60273
16 changed files with 720 additions and 22 deletions
|
|
@ -0,0 +1,36 @@
|
|||
from __future__ import annotations
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
|
||||
revision = "202607110004"
|
||||
down_revision = "202607110003"
|
||||
branch_labels = None
|
||||
depends_on = None
|
||||
|
||||
|
||||
def upgrade() -> None:
|
||||
op.add_column("users", sa.Column("first_name", sa.String(length=80), nullable=True))
|
||||
op.add_column("users", sa.Column("last_name", sa.String(length=80), nullable=True))
|
||||
op.add_column("users", sa.Column("must_change_password", sa.Boolean(), nullable=False, server_default=sa.true()))
|
||||
op.add_column("users", sa.Column("last_login_at", sa.DateTime(timezone=True), nullable=True))
|
||||
op.add_column("users", sa.Column("password_changed_at", sa.DateTime(timezone=True), nullable=True))
|
||||
|
||||
op.execute(
|
||||
sa.text(
|
||||
"UPDATE users SET first_name = COALESCE(first_name, split_part(full_name, ' ', 1)), "
|
||||
"last_name = COALESCE(last_name, NULLIF(substr(full_name, length(split_part(full_name, ' ', 1)) + 2), ''))"
|
||||
)
|
||||
)
|
||||
op.execute(sa.text("UPDATE users SET first_name = COALESCE(first_name, 'Validation'), last_name = COALESCE(last_name, 'Admin')"))
|
||||
op.alter_column("users", "first_name", nullable=False)
|
||||
op.alter_column("users", "last_name", nullable=False)
|
||||
op.alter_column("users", "must_change_password", server_default=None)
|
||||
|
||||
|
||||
def downgrade() -> None:
|
||||
op.drop_column("users", "password_changed_at")
|
||||
op.drop_column("users", "last_login_at")
|
||||
op.drop_column("users", "must_change_password")
|
||||
op.drop_column("users", "last_name")
|
||||
op.drop_column("users", "first_name")
|
||||
Loading…
Add table
Add a link
Reference in a new issue