zhaoqingang
2024-11-19 5ef590b70cc8e2de16083af2ee2d977daae5587c
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
        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")