modify: auth 插件
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
import time
|
||||
|
||||
from sqlalchemy import select
|
||||
|
||||
from chongming_worker import rpc_method
|
||||
|
||||
from ..models.pydantic import (
|
||||
MeGetRequest,
|
||||
MeGetResponse
|
||||
)
|
||||
from ..models.auth import Users
|
||||
|
||||
|
||||
@rpc_method(
|
||||
subject="auth.me",
|
||||
method="GET",
|
||||
summary="获取当前用户信息",
|
||||
response_model=MeGetResponse,
|
||||
)
|
||||
async def me(me_get_request: MeGetRequest) -> MeGetResponse:
|
||||
from ..global_var import db
|
||||
|
||||
if db is None:
|
||||
raise RuntimeError("Database not initialized")
|
||||
|
||||
async with db.get_session() as session:
|
||||
stmt = select(Users).filter_by(id=me_get_request.user_id)
|
||||
result = await session.execute(stmt)
|
||||
user: Users | None = result.scalar_one_or_none()
|
||||
|
||||
if user is None:
|
||||
return MeGetResponse(
|
||||
result="fail",
|
||||
id="",
|
||||
username="",
|
||||
email="",
|
||||
is_active=False,
|
||||
is_verified=False,
|
||||
is_superuser=False,
|
||||
)
|
||||
|
||||
return MeGetResponse(
|
||||
result="success",
|
||||
id=user.id,
|
||||
username=user.username,
|
||||
email=user.email,
|
||||
full_name=user.full_name,
|
||||
avatar_url=user.avatar_url,
|
||||
phone=user.phone,
|
||||
is_active=user.is_active,
|
||||
is_verified=user.is_verified,
|
||||
is_superuser=user.is_superuser,
|
||||
created_at=user.created_at.isoformat() if user.created_at else None,
|
||||
updated_at=user.updated_at.isoformat() if user.updated_at else None,
|
||||
last_login_at=user.last_login_at.isoformat() if user.last_login_at else None,
|
||||
)
|
||||
Reference in New Issue
Block a user