Unique username
Build and Push Docker Image / build-and-push (push) Successful in 14s

This commit is contained in:
ciomek committed 2026-08-17 12:42:31 +02:00
1 parent c75526aa2e
commit f34bb39d31
3 files changed
+13 -4

No files matched your search

@@ -1,8 +1,8 @@
"""Users
Revision ID: 493f3f7529f3
Revision ID: 2df7e2c6af43
Revises:
Create Date: 2026-08-16 11:22:34.176552
Create Date: 2026-08-17 12:42:05.103510
"""
from typing import Sequence, Union
@@ -13,7 +13,7 @@ import sqlalchemy as sa
import sqlmodel
# revision identifiers, used by Alembic.
revision: str = '493f3f7529f3'
revision: str = '2df7e2c6af43'
down_revision: Union[str, Sequence[str], None] = None
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None
@@ -29,6 +29,7 @@ def upgrade() -> None:
sa.Column('password', sqlmodel.sql.sqltypes.AutoString(), nullable=False),
sa.Column('admin', sa.Boolean(), nullable=False),
sa.PrimaryKeyConstraint('id'),
sa.UniqueConstraint('internal_username'),
sa.UniqueConstraint('uuid')
)
# ### end Alembic commands ###
+8
View File
@@ -25,6 +25,14 @@ async def register_request_handler(client, userdata, msg, data):
json.dumps({"success": False, "error": "The user is already registered!"}))
return
statement = select(User).where(User.internal_username == internal_username)
user = session.exec(statement).first()
if user is not None:
client.publish(f"loon/register/{uuid}/response",
json.dumps({"success": False, "error": f"The {internal_username} is taken!"}))
return
user = User(uuid=uuid, password=hash_password(password), internal_username=internal_username, admin=False)
session.add(user)
try:
+1 -1
View File
@@ -4,6 +4,6 @@ from sqlmodel import SQLModel, Field
class User(SQLModel, table=True):
id: int = Field(default=None, primary_key=True)
uuid: str = Field(unique=True)
internal_username: str
internal_username: str = Field(unique=True)
password: str
admin: bool = Field(default=False)