| | |
| | | import time |
| | | import uuid |
| | | from datetime import datetime |
| | | from traceback import print_tb |
| | | |
| | | from app.api import pwd_context |
| | | from app.api.dialog import dialog_list |
| | | from app.config.config import settings |
| | | from app.config.const import RAGFLOW, BISHENG, DIFY, USER_STATSU_DELETE, ROLE_STATUS_ON, DEPT_STATUS_ON, \ |
| | | Dialog_STATSU_ON |
| | | 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 |
| | | from app.service.auth import UserAppDao |
| | | from app.service.bisheng import BishengService |
| | | from app.service.v2.app_register import AppRegisterDao |
| | | from app.service.difyService import DifyService |
| | | from app.service.ragflow import RagflowService |
| | | from app.service.service_token import get_ragflow_token, get_bisheng_token, get_new_token, get_dify_token |
| | | from app.utils.password_handle import generate_password |
| | | |
| | | |
| | | |
| | | async def get_user_list(db, page_index: int, page_size: int, keyword: str, role_key: str, user_id): |
| | |
| | | knowledge_dict = {} |
| | | user = db.query(UserModel).filter_by(id=user_id).first() |
| | | parent_id = "" |
| | | # print(111111111111111) |
| | | async def role_resource(role_set, permissions, roles): |
| | | |
| | | async def role_resource_type(role_set, permissions, roles, type): |
| | | nonlocal parent_id |
| | | for role in roles: |
| | | if role.id not in role_set: |
| | |
| | | |
| | | for r in role.resources: |
| | | if r.resource_type_id != "1": |
| | | # if not r.resource_id: |
| | | # parent_id = r.id |
| | | # continue |
| | | permissions[r.id] = r.to_router_dict() |
| | | permission_dict = r.to_router_dict() |
| | | permission_dict["type"] = type |
| | | permissions[r.id] = permission_dict |
| | | |
| | | await role_resource(role_set, permissions, user.roles) |
| | | await role_resource_type(role_set, permissions, user.roles, "user") |
| | | for ogt in user.organizations: |
| | | if ogt.roles: |
| | | await role_resource(role_set, permissions, ogt.roles) |
| | | await role_resource_type(role_set, permissions, ogt.roles, "org") |
| | | parent_ogt = ogt.parent |
| | | while parent_ogt: |
| | | |
| | | if parent_ogt.id not in dept_set: |
| | | await role_resource(role_set, permissions, parent_ogt.roles) |
| | | await role_resource_type(role_set, permissions, parent_ogt.roles, "org") |
| | | dept_set.add(parent_ogt.id) |
| | | |
| | | parent_ogt = parent_ogt.parent |
| | |
| | | async def get_user_dept(db, user_id): |
| | | res = {} |
| | | user = db.query(UserModel).filter_by(id=user_id).first() |
| | | res["rows"] = [i.to_dict() for i in user.organizations] |
| | | res["rows"] = [i.to_dict() for i in user.organizations if i.status == DEPT_STATUS_ON] |
| | | return res |
| | | |
| | | |