From f249dda1376dd5a525e74617900351c5bbc61705 Mon Sep 17 00:00:00 2001 From: zhaoqingang <zhaoqg0118@163.com> Date: 星期一, 02 十二月 2024 09:26:18 +0800 Subject: [PATCH] 报告生成 --- app/models/user_model.py | 58 ++++++++++++++++++++++++++++++++-------------------------- 1 files changed, 32 insertions(+), 26 deletions(-) diff --git a/app/models/user_model.py b/app/models/user_model.py index d722d02..e51ae00 100644 --- a/app/models/user_model.py +++ b/app/models/user_model.py @@ -1,8 +1,10 @@ from datetime import datetime +from cryptography.fernet import Fernet from sqlalchemy import Column, Integer, String, Table, ForeignKey, DateTime from sqlalchemy.orm import relationship, backref +from app.config.config import settings from app.models.base_model import Base user_organization_table = Table('user_organization',Base.metadata @@ -16,7 +18,7 @@ user_group_table = Table('user_group', Base.metadata , Column('user_id', Integer, ForeignKey('user.id', ondelete='CASCADE')) , Column('group_id', Integer, ForeignKey('group.id', ondelete='CASCADE'))) - +cipher_suite = Fernet(settings.PASSWORD_KEY.encode("utf-8")) class UserModel(Base): @@ -24,17 +26,18 @@ id = Column(Integer, primary_key=True, index=True) username = Column(String(255), unique=True, index=True) hashed_password = Column(String(255)) + password = Column(String(255)) compellation = Column(String(255), nullable=False, default="") phone = Column(String(255), nullable=False, default="") email = Column(String(255), nullable=False, default="") description = Column(String(255), nullable=False, default="") - ragflow_id = Column(String(32), unique=True, index=True) - bisheng_id = Column(Integer, unique=True, index=True) + ragflow_id = Column(String(32)) + bisheng_id = Column(Integer) login_name = Column(String(100)) status = Column(String(10), nullable=False, default="1") creator = Column(String(36)) sex = Column(String(1)) - permission = Column(String(16), nullable=False, default="1") + permission = Column(String(16), nullable=False, default="general") age = Column(Integer) created_at = Column(DateTime, default=datetime.now()) updated_at = Column(DateTime, default=datetime.now(), onupdate=datetime.now()) @@ -127,35 +130,31 @@ # 'phoneNumber': self.phone_number } parent_dict = {} - resources = [] + children_dict = {} for role in self.roles: for r in role.to_json().get("resources", []): - if not r["parentId"]: - resources.append(r) - continue - if r["parentId"] in parent_dict: - parent_dict[r["parentId"]].append(r) + if r["menuType"] != "1": + parent_dict[r["menuId"]] = r else: - parent_dict[r["parentId"]] = [r] - - # roles = [role.to_json() for role in self.roles] + if r["parentId"] in children_dict: + children_dict[r["parentId"]].append(r) + else: + children_dict[r["parentId"]] = [r] organization_roles = [role.to_json() for organization in self.organizations for role in organization.roles] for role in organization_roles: for r in role.to_json().get("resources", []): - if not r["parentId"]: - resources.append(r) - continue - if r["parentId"] in parent_dict: - parent_dict[r["parentId"]].append(r) + if r["menuType"] != "1": + parent_dict[r["menuId"]] = r else: - parent_dict[r["parentId"]] = [r] - - - # for resource in resources: - # if resource["menuId"] in parent_dict: - # resource[] - + if r["parentId"] in children_dict: + children_dict[r["parentId"]].append(r) + else: + children_dict[r["parentId"]] = [r] + resources = [] + for resource in parent_dict.values(): + resource["children"] = children_dict.get(resource["menuId"], []) + resources.append(resource) json['resources'] = resources return json @@ -166,4 +165,11 @@ user_id_list = [user.ID for user in users] for user in users: user_id_list.extend(user.get_children()) - return user_id_list \ No newline at end of file + return user_id_list + + + def encrypted_password(self, password): + return cipher_suite.encrypt(password.encode("utf-8")).decode("utf-8") + + def decrypted_password(self): + return cipher_suite.decrypt(self.password).decode("utf-8") \ No newline at end of file -- Gitblit v1.8.0