| | |
| | | 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 |
| | |
| | | |
| | | from Log import logger |
| | | from app.config.config import settings |
| | | from app.config.const import RAGFLOW, BISHENG, DIFY |
| | | from app.config.const import RAGFLOW, BISHENG, DIFY, USER_STATSU_DELETE |
| | | from app.models import RoleModel, GroupModel, TokenModel |
| | | from app.models.user_model import UserModel, UserAppModel |
| | | # from app.service.ragflow import RagflowService |
| | |
| | | |
| | | |
| | | def authenticate_user(db, username: str, password: str): |
| | | user = db.query(UserModel).filter(UserModel.username == username).first() |
| | | user = db.query(UserModel).filter(UserModel.username == username, UserModel.status != USER_STATSU_DELETE).first() |
| | | if not user: |
| | | return False |
| | | if not verify_password(password, user.hashed_password): |
| | |
| | | |
| | | |
| | | 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) |
| | |
| | | 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_user.roles = [db.query(RoleModel).filter(RoleModel.role_type == 2).first()] |
| | | db_user.groups = [db.query(GroupModel).filter(GroupModel.group_type == 2).first()] |
| | |
| | | db.query(UserModel).filter(UserModel.id == user_id).delete() |
| | | db.commit |
| | | return False |
| | | return user_id |
| | | return sync_flag |
| | | |
| | | |
| | | async def update_user_token(db, user_id, token_dict): |
| | |
| | | # db.commit() |
| | | # db.refresh(db_user) |
| | | |
| | | is_sava = await save_register_user(db, user.username, user.password, user.email, register_dict) |
| | | # is_sava = await save_register_user(db, user.username, user.password, user.email, register_dict) |
| | | |
| | | class UserAppDao: |
| | | def __init__(self, db: Session): |