feat(auth): Add OAuth2 authentication
This commit is contained in:
47
secnex/kit/models/user.py
Normal file
47
secnex/kit/models/user.py
Normal file
@@ -0,0 +1,47 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from datetime import datetime
|
||||
from typing import Any, Optional
|
||||
|
||||
class User:
|
||||
def __init__(
|
||||
self,
|
||||
id: str,
|
||||
first_name: str,
|
||||
last_name: str,
|
||||
username: str,
|
||||
email: str,
|
||||
password: str,
|
||||
verified: bool,
|
||||
external_id: Optional[str],
|
||||
tenant_id: Optional[str],
|
||||
created_at: datetime | str,
|
||||
updated_at: datetime | str,
|
||||
deleted_at: datetime | str | None,
|
||||
) -> None:
|
||||
self.id = id
|
||||
self.first_name = first_name
|
||||
self.last_name = last_name
|
||||
self.username = username
|
||||
self.email = email
|
||||
self.password = password
|
||||
self.verified = verified
|
||||
self.external_id = external_id
|
||||
self.tenant_id = tenant_id
|
||||
self.created_at = self._parse_datetime(created_at)
|
||||
self.updated_at = self._parse_datetime(updated_at)
|
||||
self.deleted_at = self._parse_datetime(deleted_at) if deleted_at is not None else None
|
||||
|
||||
def __str__(self) -> str:
|
||||
return f"{self.first_name} {self.last_name} - {self.email} - {self.id} - {self.tenant_id} - {self.created_at} - {self.updated_at} - {self.deleted_at}"
|
||||
|
||||
@staticmethod
|
||||
def _parse_datetime(value: Any) -> Any:
|
||||
if isinstance(value, datetime):
|
||||
return value
|
||||
if isinstance(value, str):
|
||||
try:
|
||||
return datetime.fromisoformat(value)
|
||||
except ValueError:
|
||||
return value
|
||||
return value
|
||||
Reference in New Issue
Block a user