mirror of
https://github.com/fastapi-practices/fastapi-best-architecture.git
synced 2026-09-21 21:15:13 +00:00
Add plugin system and notice plugin (#503)
* Update system notice to plugin * Add plugin model alembic support * update plugin conf * add plugin route injection * update plugin route inject * fix and optimize plugin router inject
This commit is contained in:
@@ -9,7 +9,7 @@ from backend.common.enums import RoleDataRuleExpressionType, RoleDataRuleOperato
|
||||
from backend.common.exception import errors
|
||||
from backend.common.exception.errors import ServerError
|
||||
from backend.core.conf import settings
|
||||
from backend.utils.import_parse import dynamic_import
|
||||
from backend.utils.import_parse import dynamic_import_data_model
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from backend.app.admin.schema.data_rule import GetDataRuleDetail
|
||||
@@ -60,7 +60,10 @@ def filter_data_permission(request: Request) -> ColumnElement[bool]:
|
||||
rule_model = rule.model
|
||||
if rule_model not in settings.DATA_PERMISSION_MODELS:
|
||||
raise errors.NotFoundError(msg='数据规则模型不存在')
|
||||
model_ins = dynamic_import(settings.DATA_PERMISSION_MODELS[rule_model])
|
||||
try:
|
||||
model_ins = dynamic_import_data_model(settings.DATA_PERMISSION_MODELS[rule_model])
|
||||
except (ImportError, AttributeError):
|
||||
raise errors.ServerError(msg=f'数据模型 {rule_model} 动态导入失败,请联系系统超级管理员')
|
||||
model_columns = [
|
||||
key for key in model_ins.__table__.columns.keys() if key not in settings.DATA_PERMISSION_COLUMN_EXCLUDE
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user