| | |
| | | import time |
| | | import uuid |
| | | from datetime import datetime |
| | | from traceback import print_tb |
| | | |
| | |
| | | app_register = AppRegisterDao(db).get_apps() |
| | | register_dict = {} |
| | | token = "" |
| | | app_password = generate_password() |
| | | app_password = await generate_password() |
| | | for app in app_register: |
| | | if app["id"] == RAGFLOW: |
| | | service = RagflowService(settings.fwr_base_url) |
| | |
| | | |
| | | # 存储用户信息 |
| | | hashed_password = pwd_context.hash(password) |
| | | |
| | | sync_flag = str(uuid.uuid4()) |
| | | user_model = UserModel(username=user_name, hashed_password=hashed_password, email=email, |
| | | ## ragflow_id=ragflow_info.get("id"),bisheng_id=bisheng_info.get("user_id"), |
| | | phone=phone, login_name=login_name) |
| | | phone=phone, login_name=login_name,sync_flag=sync_flag) |
| | | pwd = user_model.encrypted_password(app_password) |
| | | user_model.roles = [db.get(RoleModel, roleId) for roleId in roles] |
| | | user_model.password = pwd |
| | |
| | | db.commit() |
| | | db.refresh(user_model) |
| | | u_id = user_model.id |
| | | user_app_dao = UserAppDao(db) |
| | | for k, v in register_dict.items(): |
| | | await UserAppDao(db).update_and_insert_data(v.get("name"), pwd, v.get("email"), u_id, str(v.get("id")), k) |
| | | await user_app_dao.update_and_insert_data(v.get("name"), pwd, v.get("email"), u_id, str(v.get("id")), k) |
| | | except Exception as e: |
| | | logger.error(e) |
| | | # db.rollback() |
| | | return False |
| | | return True |
| | | return '' |
| | | return sync_flag |
| | | |
| | | |
| | | async def edit_user_data(db, user_id, email, phone, login_name, roles, groups): |
| | |
| | | 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 |
| | | |
| | | |