Add 3 roles, settings for marathons
This commit is contained in:
38
backend/alembic/versions/003_create_admin_user.py
Normal file
38
backend/alembic/versions/003_create_admin_user.py
Normal file
@@ -0,0 +1,38 @@
|
||||
"""Create admin user
|
||||
|
||||
Revision ID: 003_create_admin
|
||||
Revises: 002_marathon_settings
|
||||
Create Date: 2024-12-14
|
||||
|
||||
"""
|
||||
from typing import Sequence, Union
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from passlib.context import CryptContext
|
||||
|
||||
# revision identifiers, used by Alembic.
|
||||
revision: str = '003_create_admin'
|
||||
down_revision: Union[str, None] = '002_marathon_settings'
|
||||
branch_labels: Union[str, Sequence[str], None] = None
|
||||
depends_on: Union[str, Sequence[str], None] = None
|
||||
|
||||
pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto")
|
||||
|
||||
|
||||
def upgrade() -> None:
|
||||
# Hash the password
|
||||
password_hash = pwd_context.hash("RPQ586qq")
|
||||
|
||||
# Insert admin user (ignore if already exists)
|
||||
op.execute(f"""
|
||||
INSERT INTO users (login, password_hash, nickname, role, created_at)
|
||||
VALUES ('admin', '{password_hash}', 'Admin', 'admin', NOW())
|
||||
ON CONFLICT (login) DO UPDATE SET
|
||||
password_hash = '{password_hash}',
|
||||
role = 'admin'
|
||||
""")
|
||||
|
||||
|
||||
def downgrade() -> None:
|
||||
op.execute("DELETE FROM users WHERE login = 'admin'")
|
||||
Reference in New Issue
Block a user