| | |
| | | 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 |
| | |
| | | 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( |
| | |
| | | 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({ |
| | |
| | | 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 |