From 88360b4ac6f051f62a91e93d602fd393935071ab Mon Sep 17 00:00:00 2001 From: zhaoqingang <zhaoqg0118@163.com> Date: 星期一, 16 十二月 2024 17:26:11 +0800 Subject: [PATCH] sync data --- app/service/auth.py | 61 +++++++++++++++++++++++++++--- 1 files changed, 55 insertions(+), 6 deletions(-) diff --git a/app/service/auth.py b/app/service/auth.py index d0436f8..86103fc 100644 --- a/app/service/auth.py +++ b/app/service/auth.py @@ -1,6 +1,8 @@ import re +import uuid from datetime import datetime, timedelta from typing import Type +from uuid import uuid4 from jwt import encode, decode, exceptions from passlib.context import CryptContext @@ -9,7 +11,12 @@ from Log import logger from app.config.config import settings +from app.config.const import RAGFLOW, BISHENG, DIFY +from app.models import RoleModel, GroupModel, TokenModel from app.models.user_model import UserModel, UserAppModel +# from app.service.ragflow import RagflowService +# from app.service.service_token import get_new_token +from app.service.v2.app_register import AppRegisterDao SECRET_KEY = settings.secret_key ALGORITHM = "HS256" @@ -55,7 +62,7 @@ def is_valid_password(password: str) -> bool: - if len(password) <= 8: + if len(password) < 8: return False has_digit = re.search(r'[0-9]', password) has_letter = re.search(r'[A-Za-z]', password) @@ -64,14 +71,16 @@ return has_digit is not None and has_letter is not None -async def save_register_user(db, username, password, email, register_dict): +async def save_register_user(db, username, password, email, app_password, register_dict): user_id = "" + sync_flag = str(uuid.uuid4()) try: hashed_password = pwd_context.hash(password) - db_user = UserModel(username=username, hashed_password=hashed_password, email=email) - pwd = db_user.encrypted_password(password) + db_user = UserModel(username=username, hashed_password=hashed_password, email=email, sync_flag=sync_flag) + pwd = db_user.encrypted_password(app_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) @@ -84,8 +93,9 @@ # db.roolback() if user_id: db.query(UserModel).filter(UserModel.id == user_id).delete() + db.commit return False - return True + return sync_flag async def update_user_token(db, user_id, token_dict): @@ -99,6 +109,40 @@ return False 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): @@ -150,3 +194,8 @@ 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