From a791022ff1311e1fb76930c398d6ff91036d0456 Mon Sep 17 00:00:00 2001 From: zhaoqingang <zhaoqg0118@163.com> Date: 星期三, 11 十二月 2024 17:57:52 +0800 Subject: [PATCH] 新增加标签功能 --- app/service/auth.py | 74 +++++++++++++++++++++++++++++-------- 1 files changed, 58 insertions(+), 16 deletions(-) diff --git a/app/service/auth.py b/app/service/auth.py index d843adb..a0a1952 100644 --- a/app/service/auth.py +++ b/app/service/auth.py @@ -9,7 +9,10 @@ from Log import logger from app.config.config import settings +from app.config.const import RAGFLOW, BISHENG, DIFY +from app.models import RoleModel, GroupModel from app.models.user_model import UserModel, UserAppModel +from app.service.v2.app_register import AppRegisterDao SECRET_KEY = settings.secret_key ALGORITHM = "HS256" @@ -71,29 +74,30 @@ db_user = UserModel(username=username, hashed_password=hashed_password, email=email) pwd = db_user.encrypted_password(password) db_user.password = pwd - db.add(db_user) + db_user.roles = [db.query(RoleModel).filter(RoleModel.role_type == 2).first()] + db_user.groups = [db.query(GroupModel).filter(GroupModel.group_type == 2).first()] db.add(db_user) db.commit() db.refresh(db_user) user_id = db_user.id for k, v in register_dict.items(): - UserAppDao(db).update_and_insert_token(v.get("name"), pwd, v.get("email"), user_id, str(v.get("id")), k) + await UserAppDao(db).update_and_insert_data(v.get("name"), pwd, v.get("email"), user_id, str(v.get("id")), k) except Exception as e: logger.error(e) # db.roolback() if user_id: db.query(UserModel).filter(UserModel.id == user_id).delete() + db.commit return False return True async def update_user_token(db, user_id, token_dict): - try: for k, v in token_dict.items(): - UserAppDao(db).update_user_app_data({"user_id": user_id, "app_type": k}, - {"access_token": v, "token_at": datetime.now()}) + await UserAppDao(db).update_user_app_data({"user_id": user_id, "app_type": k}, + {"access_token": v, "token_at": datetime.now()}) except Exception as e: logger.error(e) @@ -101,15 +105,49 @@ return True +async def update_user_info(db, user_id): + app_register = AppRegisterDao(db).get_apps() + register_dict = {} + user = db.query(UserModel).filter(UserModel.id==user_id).first() + for app in app_register: + if app["id"] == RAGFLOW: + register_dict[app['id']] = {"id": user.ragflow_id, "name": user.username, "email": f"{user.username}@example.com"} + elif app["id"] == BISHENG: + register_dict[app['id']] = {"id": user.bisheng_id, "name": user.username, "email": ""} + elif app["id"] == DIFY: + register_dict[app['id']] = {"id": "", "name": user.username, "email": ""} + else: + logger.error("鏈煡娉ㄥ唽搴旂敤---") + continue + + try: + for k, v in register_dict.items(): + await UserAppDao(db).update_and_insert_data(v.get("name"), user.password, v.get("email"), user_id, + str(v.get("id")), k) + except Exception as e: + logger.error(e) + + # 瀛樺偍鐢ㄦ埛淇℃伅 + # hashed_password = pwd_context.hash(user.password) + # db_user = UserModel(username=user.username, hashed_password=hashed_password, email=user.email) + # db_user.password = db_user.encrypted_password(user.password) + # for k, v in register_dict.items(): + # setattr(db_user, k.replace("app", "id"), v) + # db.add(db_user) + # db.commit() + # db.refresh(db_user) + + is_sava = await save_register_user(db, user.username, user.password, user.email, register_dict) + class UserAppDao: def __init__(self, db: Session): self.db = db - def get_data_by_id(self, user_id: int, app_type: int) -> Type[UserAppModel] | None: + async def get_data_by_id(self, user_id: int, app_type: int) -> Type[UserAppModel] | None: session = self.db.query(UserAppModel).filter_by(user_id=user_id, app_type=app_type).first() return session - def update_user_app_data(self, query: int, update_data: str): + async def update_user_app_data(self, query: dict, update_data: dict): logger.error("鏇存柊鏁版嵁df update_app_data---------------------------") try: @@ -120,7 +158,8 @@ self.db.rollback() raise Exception("鏇存柊澶辫触锛�") - def insert_user_app_data(self, username: str, password: str, email: str, user_id: int, app_id: str, app_type: int): + async def insert_user_app_data(self, username: str, password: str, email: str, user_id: int, app_id: str, + app_type: int): logger.error("鏂板鏁版嵁df insert_user_app_data---------------------------") new_session = UserAppModel( username=username, @@ -135,15 +174,18 @@ self.db.refresh(new_session) return new_session - def update_and_insert_token(self, username: str, password: str, email: str, user_id: int, app_id: str, - app_type: int): + async def update_and_insert_data(self, username: str, password: str, email: str, user_id: int, app_id: str, + app_type: int): logger.error("鏇存柊鎴栬�呮坊鍔犳暟鎹� update_and_insert_token---------------------------") - token_boj = self.get_data_by_id(user_id, app_type) + token_boj = await self.get_data_by_id(user_id, app_type) if token_boj: - self.update_user_app_data({"id": token_boj.id}, {"username": username, - "password": password, "email": email, "username": username, - "updated_at": datetime.now(), - }) + await self.update_user_app_data({"id": token_boj.id}, {"username": username, + "password": password, "email": email, + "updated_at": datetime.now(), + }) else: - self.insert_user_app_data(username, password, email, user_id, app_id, app_type) + await self.insert_user_app_data(username, password, email, user_id, app_id, app_type) + + async def get_user_datas(self, user_id: int): + return self.db.query(UserAppModel).filter_by(user_id=user_id).all() -- Gitblit v1.8.0