Update/fix login

This commit is contained in:
phil 2024-03-16 11:18:33 +05:30
parent ba1f59cfb9
commit 15fe7fab08
4 changed files with 56 additions and 8 deletions
src/gisaf/models

View file

@ -1,4 +1,6 @@
from sqlmodel import Field, SQLModel, Relationship
from datetime import datetime
from sqlmodel import Field, SQLModel, Relationship, String
from pydantic import BaseModel
from gisaf.models.metadata import gisaf_admin
@ -27,10 +29,20 @@ class UserBase(SQLModel):
class User(UserBase, table=True):
__table_args__ = gisaf_admin.table_args
id: str | None = Field(default=None, primary_key=True)
id: int = Field(primary_key=True)
username: str = Field(String(255), unique=True, index=True)
email: str = Field(sa_type=String(50), unique=True)
password: str = Field(sa_type=String(255))
active: bool
confirmed_at: datetime
last_login_at: datetime
current_login_at: datetime
last_login_ip: str = Field(sa_type=String(255))
current_login_ip: str = Field(sa_type=String(255))
login_count: int
roles: list["Role"] = Relationship(back_populates="users",
link_model=UserRoleLink)
password: str | None = None
def can_view(self, model) -> bool:
role = getattr(model, 'viewable_role', None)