Fix/update baskets:

- get_file
- import
- Basket importers must return BasketImportResult
Add API points
Fix utils delete_df and upsert_df, also making them async friendly
Auth: add helper functions to UserRead
This commit is contained in:
phil 2024-04-09 16:16:04 +05:30
parent 52e1d2135b
commit d2ae5e4d7b
9 changed files with 323 additions and 182 deletions

View file

@ -157,9 +157,9 @@ class Basket(BasketNameOnly):
class BasketImportResult(BaseModel):
time: datetime
time: datetime = Field(default_factory=datetime.now)
message: str
details: str
details: dict[str, str | int | float | bool] | None = None
class AdminBasketFile(BaseModel):
id: int

View file

@ -86,6 +86,16 @@ class UserRead(UserBase):
email: str | None # type: ignore
roles: list[RoleReadNoUsers] = []
def can_view(self, model) -> bool:
role = getattr(model, 'viewable_role', None)
if role:
return self.has_role(role)
else:
return True
def has_role(self, role: str) -> bool:
return role in (role.name for role in self.roles)
# class ACL(BaseModel):
# user_id: int