From f6b2863303625ef7ef3809c4e08edbd2e0b4530b Mon Sep 17 00:00:00 2001 From: zhaoqingang <zhaoqg0118@163.com> Date: 星期二, 25 二月 2025 11:19:57 +0800 Subject: [PATCH] 鉴权 --- app/models/user_model.py | 65 +++++++++++++++++++++++--------- 1 files changed, 47 insertions(+), 18 deletions(-) diff --git a/app/models/user_model.py b/app/models/user_model.py index eeaf3e6..8dc7183 100644 --- a/app/models/user_model.py +++ b/app/models/user_model.py @@ -39,6 +39,7 @@ sex = Column(String(1)) permission = Column(String(16), default="general") age = Column(Integer) + sync_flag = Column(String(36)) created_at = Column(DateTime, default=datetime.now()) updated_at = Column(DateTime, default=datetime.now(), onupdate=datetime.now()) @@ -111,21 +112,26 @@ # if len(self.roles) > 0: roles = {role.id: role.to_dict() for role in self.roles} - ogt_set = set() - for ogt in self.organizations: - if ogt.id in ogt_set: - continue - ogt_set.add(ogt.id) - for role in ogt.roles: - roles[role.id] = role.to_dict() - parent_ogt = ogt.parent - while parent_ogt: - if parent_ogt.id not in ogt_set: - ogt_set.add(ogt.id) - for role in ogt.roles: - roles[role.id] = role.to_dict() - parent_ogt = ogt.parent + # ogt_set = set() + # for ogt in self.organizations: + # if ogt.id in ogt_set: + # continue + # print(ogt.id) + # ogt_set.add(ogt.id) + # for role in ogt.roles: + # roles[role.id] = role.to_dict() + # parent_ogt = ogt.parent + # while parent_ogt: + # if parent_ogt.id not in ogt_set: + # ogt_set.add(ogt.id) + # for role in parent_ogt.roles: + # roles[role.id] = role.to_dict() + # parent_ogt = parent_ogt.parent + # else: + # break + json['roles'] = list(roles.values()) + json['depts'] = [i.to_base_json() for i in self.organizations] return json @@ -220,9 +226,32 @@ "app_type": self.app_type, 'status': self.status, } - - def encrypted_password(self, password): + @staticmethod + def encrypted_password(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 + @staticmethod + def decrypted_password(password): + return cipher_suite.decrypt(password).decode("utf-8") + + +class UserTokenModel(Base): + __tablename__ = "user_token" + id = Column(String(16), primary_key=True) + account = Column(String(255)) + password = Column(String(255)) + access_token = Column(String(1000)) + refresh_token = Column(String(1000)) + created_at = Column(DateTime, default=datetime.now()) + updated_at = Column(DateTime, default=datetime.now()) + + def to_json(self): + return { + 'id': self.id, + 'account': self.username, + 'createTime': self.created_at, + 'updateTime': self.updated_at, + 'password': self.password, + 'access_token': self.access_token, + 'refresh_token': self.refresh_token, + } \ No newline at end of file -- Gitblit v1.8.0