mirror of
https://gh-proxy.org/https://github.com/klinsmaya/SQLBot.git
synced 2026-11-08 01:06:59 +08:00
feat: User reset pwd api
This commit is contained in:
@@ -9,7 +9,7 @@ from apps.system.schemas.system_schema import PwdEditor, UserCreator, UserEditor
|
||||
from common.core.deps import CurrentUser, SessionDep, Trans
|
||||
from common.core.pagination import Paginator
|
||||
from common.core.schemas import PaginatedResponse, PaginationParams
|
||||
from common.core.security import md5pwd, verify_md5pwd
|
||||
from common.core.security import default_md5_pwd, md5pwd, verify_md5pwd
|
||||
from common.core.sqlbot_cache import clear_cache
|
||||
router = APIRouter(tags=["user"], prefix="/user")
|
||||
|
||||
@@ -132,6 +132,16 @@ async def langChange(session: SessionDep, current_user: CurrentUser, language: U
|
||||
db_user.language = lang
|
||||
session.add(db_user)
|
||||
session.commit()
|
||||
|
||||
@router.patch("/pwd/{id}")
|
||||
@clear_cache(namespace=CacheNamespace.AUTH_INFO, cacheName=CacheName.USER_INFO, keyExpression="id")
|
||||
async def pwdReset(session: SessionDep, current_user: CurrentUser, id: int):
|
||||
if not current_user.isAdmin:
|
||||
raise RuntimeError('only for admin')
|
||||
db_user: UserModel = get_db_user(session=session, user_id=id)
|
||||
db_user.password = default_md5_pwd()
|
||||
session.add(db_user)
|
||||
session.commit()
|
||||
|
||||
@router.put("/pwd")
|
||||
@clear_cache(namespace=CacheNamespace.AUTH_INFO, cacheName=CacheName.USER_INFO, keyExpression="current_user.id")
|
||||
|
||||
@@ -33,8 +33,10 @@ def get_assistant_ds(*, session: Session, assistant: AssistantModel):
|
||||
db_ds_list = session.exec(stmt).all()
|
||||
# filter private ds if offline
|
||||
return db_ds_list
|
||||
pass
|
||||
|
||||
out_ds_instance: AssistantOutDs = AssistantOutDsFactory.get_instance(assistant)
|
||||
dslist = out_ds_instance.get_ds_list()
|
||||
# format?
|
||||
return dslist
|
||||
|
||||
def init_dynamic_cors(app: FastAPI):
|
||||
try:
|
||||
@@ -58,4 +60,22 @@ def init_dynamic_cors(app: FastAPI):
|
||||
updated_origins = list(set(settings.all_cors_origins + unique_domains))
|
||||
cors_middleware.kwargs['allow_origins'] = updated_origins
|
||||
except Exception as e:
|
||||
return False, e
|
||||
return False, e
|
||||
|
||||
|
||||
|
||||
class AssistantOutDs:
|
||||
assistant: AssistantModel
|
||||
def get_ds_list(self):
|
||||
config: dict[any] = json.loads(self.assistant.configuration)
|
||||
url: str = config['url']
|
||||
return None
|
||||
|
||||
class AssistantOutDsFactory:
|
||||
_instance: AssistantOutDs = None
|
||||
@staticmethod
|
||||
def get_instance(cls, assistant: AssistantModel) -> AssistantOutDs:
|
||||
if not cls._instance:
|
||||
cls._instance = AssistantOutDs(assistant)
|
||||
return cls._instance
|
||||
|
||||
Reference in New Issue
Block a user