remembering logins + tokens

This commit is contained in:
CEF Server 2024-11-28 02:54:10 +00:00
parent 83404812d0
commit 6871aa2449
5 changed files with 242 additions and 19 deletions

View file

@ -0,0 +1,32 @@
"""remember me table
Revision ID: 173d66d27d78
Revises: 3c43e544e939
Create Date: 2024-09-16 00:04:58.835593
"""
from typing import Sequence, Union
from alembic import op
import sqlalchemy as sa
# revision identifiers, used by Alembic.
revision: str = '173d66d27d78'
down_revision: Union[str, None] = '3c43e544e939'
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None
def upgrade() -> None:
op.create_table(
"sessions",
sa.Column("id", sa.INT, autoincrement=True, primary_key=True),
sa.Column("username", sa.VARCHAR(64), sa.ForeignKey("users.username", ondelete="CASCADE"), index=True),
sa.Column("hash", sa.VARCHAR(128)),
sa.Column("expiry", sa.TIMESTAMP(), nullable=True, default=None),
)
def downgrade() -> None:
op.drop_table("sessions")

View file

@ -0,0 +1,39 @@
"""invited by and check tokens
Revision ID: aa17ed273170
Revises: 173d66d27d78
Create Date: 2024-11-24 03:21:32.324284
"""
from typing import Sequence, Union
from alembic import op
import sqlalchemy as sa
# revision identifiers, used by Alembic.
revision: str = 'aa17ed273170'
down_revision: Union[str, None] = '173d66d27d78'
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None
def upgrade() -> None:
op.create_table(
"tokens",
sa.Column("id", sa.INTEGER(), primary_key=True, autoincrement=True),
sa.Column("username", sa.VARCHAR(64), index=True),
sa.Column("hash", sa.VARCHAR(128)),
sa.Column("name", sa.VARCHAR(128)),
sa.Column("created_at", sa.TIMESTAMP(), server_default=sa.func.now()),
)
op.create_foreign_key("token_username_fk", "tokens", "users",
["username"], ["username"], ondelete="CASCADE")
op.add_column("users", sa.Column("invited_by", sa.VARCHAR(64), default=None))
def downgrade() -> None:
op.drop_column("users", "invited_by")
op.drop_table("tokens")