From fe30e85ad48a5fd787940cf9d58fb87a12b0b562 Mon Sep 17 00:00:00 2001 From: zhaoqingang <zhaoqg0118@163.com> Date: 星期四, 26 十二月 2024 10:28:55 +0800 Subject: [PATCH] 注册用户权限同步 --- app/service/service_token.py | 39 +++++++++++++++++++++++++-------------- 1 files changed, 25 insertions(+), 14 deletions(-) diff --git a/app/service/service_token.py b/app/service/service_token.py index dd6b1e3..236a0d7 100644 --- a/app/service/service_token.py +++ b/app/service/service_token.py @@ -8,27 +8,32 @@ from app.service.bisheng import BishengService from app.service.difyService import DifyService from app.service.ragflow import RagflowService +from app.task.fetch_agent import update_ragflow_user_tenant async def get_bisheng_token(db, user_id: int): - token = await UserAppDao(db).get_data_by_id(user_id, BISHENG) + + token = db.query(TokenModel).filter(TokenModel.user_id == user_id).first() if not token: - token = db.query(TokenModel).filter(TokenModel.user_id == user_id).first() + token = await UserAppDao(db).get_data_by_id(user_id, BISHENG) if not token: return None - else: return token.access_token - return token.bisheng_token + else: + return token.bisheng_token + async def get_ragflow_token(db, user_id: int): - token = await UserAppDao(db).get_data_by_id(user_id, RAGFLOW) + # token = await UserAppDao(db).get_data_by_id(user_id, RAGFLOW) + token = db.query(TokenModel).filter(TokenModel.user_id == user_id).first() if not token: - token = db.query(TokenModel).filter(TokenModel.user_id == user_id).first() + token = await UserAppDao(db).get_data_by_id(user_id, RAGFLOW) if not token: return None - else: return token.access_token - return token.ragflow_token + else: + return token.ragflow_token + async def get_dify_token(db, user_id: int): @@ -42,11 +47,12 @@ user = db.query(UserAppModel).filter(UserAppModel.user_id == user_id, UserAppModel.app_type==app_type).first() if not user: return None + pwd = user.password if app_type == RAGFLOW: ragflow_service = RagflowService(settings.fwr_base_url) # 鐧诲綍鍒皉agflow try: - ragflow_token = await ragflow_service.login(user.username, user.decrypted_password()) + ragflow_token = await ragflow_service.login(user.username, user.decrypted_password(pwd)) return ragflow_token except Exception as e: logger.error(e) @@ -56,7 +62,7 @@ bisheng_service = BishengService(settings.sgb_base_url) # 鐧诲綍鍒版瘯鏄� try: - bisheng_token = await bisheng_service.login(user.username, user.decrypted_password()) + bisheng_token = await bisheng_service.login(user.username, user.decrypted_password(pwd)) return bisheng_token except Exception as e: logger.error(e) @@ -67,7 +73,7 @@ dify_service = DifyService(settings.dify_base_url) # 鐧诲綍鍒版瘯鏄� try: - dify_token = await dify_service.login(user.username, user.decrypted_password()) + dify_token = await dify_service.login(user.username, user.decrypted_password(pwd)) return dify_token except Exception as e: logger.error(e) @@ -86,15 +92,19 @@ return res -async def update_user_group(db, user_id): +async def update_user_group(db, sync_flag): admin_user = db.query(UserModel).filter(UserModel.permission == "admin").first() + sync_user = db.query(UserModel).filter(UserModel.sync_flag == sync_flag).first() + if not admin_user or not sync_user: + logger.error("娉ㄥ唽鐢ㄦ埛澶辫触锛�--------") + return False token = await get_new_token(db, admin_user.id, RAGFLOW) # print(token) if not token: logger.error("娉ㄥ唽鐢ㄦ埛鑾峰彇token澶辫触锛�") return False user_list = db.query(UserAppModel).filter(UserAppModel.app_type==RAGFLOW).all() - user = db.query(UserAppModel).filter(UserAppModel.user_id==user_id, UserAppModel.app_type == RAGFLOW).first() + user = db.query(UserAppModel).filter(UserAppModel.user_id==sync_user.id, UserAppModel.app_type == RAGFLOW).first() if not user: logger.error("娉ㄥ唽鐢ㄦ埛鑾峰彇淇℃伅澶辫触锛�") return False @@ -107,4 +117,5 @@ user.app_id) await ragflow_service.add_user_tenant(token, user.app_id, u.email, - u.app_id) \ No newline at end of file + u.app_id) + update_ragflow_user_tenant(sync_user.id) -- Gitblit v1.8.0