zhaoqingang
2024-12-17 e6c5e89f09637b8d9ebca6895d781663f12646d6
app/service/user.py
@@ -5,7 +5,7 @@
from app.api.dialog import dialog_list
from app.config.config import settings
from app.config.const import RAGFLOW, BISHENG, DIFY
from app.models import RoleModel, GroupModel, AgentType, role_resource_table, DialogModel
from app.models import RoleModel, GroupModel, AgentType, role_resource_table, DialogModel, OrganizationModel
from app.models.menu_model import WebMenuModel, MenuCapacityModel
from app.models.user_model import UserModel, UserAppModel
from Log import logger
@@ -245,6 +245,7 @@
    for group in user.groups:
        for dialog in group.dialogs:
            dialog_list.append(dialog.id)
    print(dialog_list)
    menu_list = db.query(WebMenuModel.id, WebMenuModel.title, WebMenuModel.describe, WebMenuModel.icon, WebMenuModel.desc,WebMenuModel.rank,
                         WebMenuModel.img, MenuCapacityModel.capacity_id, MenuCapacityModel.capacity_type, MenuCapacityModel.chat_id.label("agentId")).outerjoin(
        MenuCapacityModel, WebMenuModel.id == MenuCapacityModel.menu_id).outerjoin(
@@ -258,7 +259,7 @@
        for m in menus:
            if user.permission == "admin":
                continue
            elif not m.capacity_type or m.capacity_type == 1 and m.capacity_id not in dialog_list:
            elif m.capacity_id not in dialog_list:
                break
        else:
            res.append({
@@ -343,4 +344,16 @@
    user = db.query(UserModel).filter_by(id=user_id).first()
    return {"roles": [i.to_dict() for i in user.roles], "user": user.to_dict()}
    return {"roles": [i.to_dict() for i in user.roles], "user": user.to_dict()}
async def edit_user_dept(db, user_id, dept_list):
    try:
        user = db.query(UserModel).filter(UserModel.id == user_id).first()
        user.organizations = [db.get(OrganizationModel, deptId) for deptId in dept_list]
        db.commit()
    except Exception as e:
        logger.error(e)
        db.rollback()
        return False
    return True