core/auth/credentials.py

42 lines
904 B
Python
Raw Normal View History

from typing import List, Optional, Text
from pydantic import BaseModel
from base.exceptions import Unauthorized
class Permission(BaseModel):
name: Text
class AuthCredentials(BaseModel):
user_id: Optional[int] = None
2021-08-17 09:14:26 +00:00
scopes: Optional[dict] = {}
logged_in: bool = False
error_message: str = ""
@property
def is_admin(self):
# TODO: check admin logix
return True
async def permissions(self) -> List[Permission]:
2022-11-24 14:31:52 +00:00
if self.user_id is None:
raise Unauthorized("Please login first")
2022-12-01 08:12:48 +00:00
else:
# TODO: implement permissions logix
print(self.user_id)
return NotImplemented()
class AuthUser(BaseModel):
user_id: Optional[int]
@property
def is_authenticated(self) -> bool:
return self.user_id is not None
@property
def display_id(self) -> int:
return self.user_id