From 31f43e12d107aa0858aafeba58d3fc44cf2cf131 Mon Sep 17 00:00:00 2001
From: zhaoqingang <zhaoqg0118@163.com>
Date: 星期三, 15 一月 2025 16:47:04 +0800
Subject: [PATCH] 修改密码接口增加密码保护
---
app/models/resource_model.py | 65 ++++++++++++++++++++++++++++++--
1 files changed, 60 insertions(+), 5 deletions(-)
diff --git a/app/models/resource_model.py b/app/models/resource_model.py
index 3aeff5a..c1c6960 100644
--- a/app/models/resource_model.py
+++ b/app/models/resource_model.py
@@ -1,7 +1,11 @@
from datetime import datetime
+from typing import Optional
+
+from pydantic import BaseModel
from sqlalchemy import Column, Integer, String, DateTime, Table, ForeignKey
from sqlalchemy.orm import relationship, backref
+from app.config.const import RESOURCE_STATUS_DELETE
from app.models.base_model import Base
class ResourceModel(Base):
@@ -22,7 +26,7 @@
resource_id = Column(String(36), ForeignKey('resource.id'))
parent = relationship('ResourceModel', remote_side=[id], backref='resources', uselist=False)
children = relationship('ResourceModel')
- status = Column(String(10))
+ status = Column(String(10), default="1")
hidden = Column(Integer, default=0)
def get_id(self):
return str(self.ID)
@@ -53,7 +57,10 @@
'menuId': self.id,
'menuName': self.name,
'menuType': self.resource_type_id,
- 'children': [res.to_tree_select_json() for res in self.children]
+ 'parentId': self.get_pid(),
+ 'status': self.status,
+ 'parentName': self.get_pName(),
+ 'children': [res.to_tree_select_json() for res in self.children if res if res.status != RESOURCE_STATUS_DELETE]
}
def to_router_json(self):
@@ -83,6 +90,34 @@
router['component'] = 'Layout'
return router
+
+
+ def to_router_dict(self):
+ router = {
+ 'id': self.id,
+ 'name': self.path.capitalize() if self.path else '',
+ # 'name': self.name,
+ 'path': self.path,
+ 'hidden': bool(self.hidden),
+ 'redirect': 'noRedirect',
+ 'component': self.url,
+ 'alwaysShow': True,
+ 'perms': self.perms,
+ 'resourceType': self.get_type_json(),
+ 'seq': self.seq,
+ 'meta': {
+ 'title': self.name,
+ 'icon': self.icon,
+ 'noCache': False,
+ 'link': ''
+ },
+ 'parentId': self.get_pid(),
+ }
+
+ if not router['component']:
+ router['component'] = 'Layout'
+ return router
+
def to_menu_json(self):
return {
@@ -130,11 +165,31 @@
def to_json(self):
return {
'id': self.id,
- 'createdatetime': self.created_at,
- 'updatedatetime': self.updated_at,
+ # 'createdatetime': self.created_at,
+ # 'updatedatetime': self.updated_at,
'name': self.name,
'description': self.description
}
def __repr__(self):
- return '<ResourceTypeModel %r>\n' %(self.name)
\ No newline at end of file
+ return '<ResourceTypeModel %r>\n' %(self.name)
+
+class MenuInfo(BaseModel):
+ menuId: Optional[str] = ""
+ menuName: Optional[str] = ""
+ component: Optional[str] = ""
+ path: Optional[str] = ""
+ orderNum: int
+ perms: Optional[str] = ""
+ menuType: Optional[str] = ""
+ description: Optional[str] = ""
+ icon: Optional[str] = ""
+ parentId: str
+ status: str
+ # roles: list
+ # groups: Optional[list] = []
+
+
+class MenuStatus(BaseModel):
+ menuId: str
+ status: str
\ No newline at end of file
--
Gitblit v1.8.0