midway-fatcms 0.0.3 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.json +14 -14
- package/.prettierrc.js +4 -4
- package/README.md +406 -406
- package/dist/config/config.default.d.ts +3 -3
- package/dist/config/config.default.js +177 -177
- package/dist/config/utils.d.ts +1 -1
- package/dist/config/utils.js +23 -23
- package/dist/configuration.d.ts +7 -7
- package/dist/configuration.js +113 -113
- package/dist/controller/base/BaseApiController.d.ts +49 -49
- package/dist/controller/base/BaseApiController.js +198 -198
- package/dist/controller/gateway/AnyApiGatewayController.d.ts +13 -13
- package/dist/controller/gateway/AnyApiGatewayController.js +55 -55
- package/dist/controller/gateway/AsyncTaskController.d.ts +20 -20
- package/dist/controller/gateway/AsyncTaskController.js +181 -181
- package/dist/controller/gateway/CrudMtdGatewayController.d.ts +21 -21
- package/dist/controller/gateway/CrudMtdGatewayController.js +122 -122
- package/dist/controller/gateway/CrudStdGatewayController.d.ts +39 -39
- package/dist/controller/gateway/CrudStdGatewayController.js +149 -149
- package/dist/controller/gateway/DocGatewayController.d.ts +27 -27
- package/dist/controller/gateway/DocGatewayController.js +181 -181
- package/dist/controller/gateway/FileController.d.ts +32 -32
- package/dist/controller/gateway/FileController.js +160 -160
- package/dist/controller/gateway/FlowInstanceController.d.ts +16 -16
- package/dist/controller/gateway/FlowInstanceController.js +48 -48
- package/dist/controller/gateway/ProxyApiGatewayController.d.ts +18 -18
- package/dist/controller/gateway/ProxyApiGatewayController.js +78 -78
- package/dist/controller/gateway/PublicApiController.d.ts +33 -33
- package/dist/controller/gateway/PublicApiController.js +194 -194
- package/dist/controller/gateway/StaticController.d.ts +23 -23
- package/dist/controller/gateway/StaticController.js +280 -280
- package/dist/controller/helpers.controller.d.ts +36 -36
- package/dist/controller/helpers.controller.js +187 -187
- package/dist/controller/home.controller.d.ts +9 -9
- package/dist/controller/home.controller.js +78 -78
- package/dist/controller/manage/AnyApiMangeApi.d.ts +10 -10
- package/dist/controller/manage/AnyApiMangeApi.js +98 -98
- package/dist/controller/manage/AppLogMangeApi.d.ts +10 -10
- package/dist/controller/manage/AppLogMangeApi.js +88 -88
- package/dist/controller/manage/AppMangeApi.d.ts +12 -12
- package/dist/controller/manage/AppMangeApi.js +101 -101
- package/dist/controller/manage/AppPageMangeApi.d.ts +10 -10
- package/dist/controller/manage/AppPageMangeApi.js +87 -87
- package/dist/controller/manage/AppSchemaHistoryApi.d.ts +10 -10
- package/dist/controller/manage/AppSchemaHistoryApi.js +83 -83
- package/dist/controller/manage/CrudMethodsMangeApi.d.ts +10 -10
- package/dist/controller/manage/CrudMethodsMangeApi.js +84 -84
- package/dist/controller/manage/CrudStandardDesignApi.d.ts +46 -46
- package/dist/controller/manage/CrudStandardDesignApi.js +367 -367
- package/dist/controller/manage/DataDictManageApi.d.ts +17 -17
- package/dist/controller/manage/DataDictManageApi.js +165 -165
- package/dist/controller/manage/DeployManageApi.d.ts +21 -21
- package/dist/controller/manage/DeployManageApi.js +203 -203
- package/dist/controller/manage/DocLibManageApi.d.ts +10 -10
- package/dist/controller/manage/DocLibManageApi.js +104 -104
- package/dist/controller/manage/DocManageApi.d.ts +11 -11
- package/dist/controller/manage/DocManageApi.js +130 -130
- package/dist/controller/manage/FileManageApi.d.ts +13 -13
- package/dist/controller/manage/FileManageApi.js +77 -77
- package/dist/controller/manage/FlowConfigManageApi.d.ts +12 -12
- package/dist/controller/manage/FlowConfigManageApi.js +109 -109
- package/dist/controller/manage/LowCodeTplManageApi.d.ts +13 -13
- package/dist/controller/manage/LowCodeTplManageApi.js +86 -86
- package/dist/controller/manage/MenuManageApi.d.ts +11 -11
- package/dist/controller/manage/MenuManageApi.js +104 -104
- package/dist/controller/manage/ProxyApiMangeApi.d.ts +10 -10
- package/dist/controller/manage/ProxyApiMangeApi.js +87 -87
- package/dist/controller/manage/SuperAdminManageApi.d.ts +24 -24
- package/dist/controller/manage/SuperAdminManageApi.js +153 -153
- package/dist/controller/manage/SysConfigMangeApi.d.ts +12 -12
- package/dist/controller/manage/SysConfigMangeApi.js +133 -133
- package/dist/controller/manage/SystemInfoManageApi.d.ts +12 -12
- package/dist/controller/manage/SystemInfoManageApi.js +82 -82
- package/dist/controller/manage/UserAccountManageApi.d.ts +16 -16
- package/dist/controller/manage/UserAccountManageApi.js +153 -153
- package/dist/controller/manage/WorkbenchMangeApi.d.ts +11 -11
- package/dist/controller/manage/WorkbenchMangeApi.js +106 -106
- package/dist/controller/myinfo/AuthController.d.ts +37 -37
- package/dist/controller/myinfo/AuthController.js +157 -157
- package/dist/controller/myinfo/MyInfoController.d.ts +13 -13
- package/dist/controller/myinfo/MyInfoController.js +51 -51
- package/dist/controller/render/AppRenderController.d.ts +12 -12
- package/dist/controller/render/AppRenderController.js +93 -93
- package/dist/controller/test.controller.d.ts +8 -8
- package/dist/controller/test.controller.js +51 -51
- package/dist/filter/default.filter.d.ts +7 -7
- package/dist/filter/default.filter.js +23 -23
- package/dist/filter/notfound.filter.d.ts +5 -5
- package/dist/filter/notfound.filter.js +20 -20
- package/dist/index.d.ts +111 -111
- package/dist/index.js +129 -129
- package/dist/interface.d.ts +30 -30
- package/dist/interface.js +3 -3
- package/dist/libs/crud-pro/CrudPro.d.ts +51 -37
- package/dist/libs/crud-pro/CrudPro.js +207 -146
- package/dist/libs/crud-pro/defaultConfigs.d.ts +4 -4
- package/dist/libs/crud-pro/defaultConfigs.js +15 -15
- package/dist/libs/crud-pro/exceptions.d.ts +106 -106
- package/dist/libs/crud-pro/exceptions.js +119 -119
- package/dist/libs/crud-pro/interfaces.d.ts +195 -175
- package/dist/libs/crud-pro/interfaces.js +12 -12
- package/dist/libs/crud-pro/models/ExecuteContext.d.ts +50 -50
- package/dist/libs/crud-pro/models/ExecuteContext.js +87 -87
- package/dist/libs/crud-pro/models/ExecuteContextFunc.d.ts +38 -38
- package/dist/libs/crud-pro/models/ExecuteContextFunc.js +72 -72
- package/dist/libs/crud-pro/models/FuncContext.d.ts +18 -18
- package/dist/libs/crud-pro/models/FuncContext.js +6 -6
- package/dist/libs/crud-pro/models/RequestCfgModel.d.ts +65 -65
- package/dist/libs/crud-pro/models/RequestCfgModel.js +81 -81
- package/dist/libs/crud-pro/models/RequestModel.d.ts +25 -25
- package/dist/libs/crud-pro/models/RequestModel.js +113 -113
- package/dist/libs/crud-pro/models/ResModel.d.ts +20 -20
- package/dist/libs/crud-pro/models/ResModel.js +2 -2
- package/dist/libs/crud-pro/models/ServiceHub.d.ts +20 -20
- package/dist/libs/crud-pro/models/ServiceHub.js +2 -2
- package/dist/libs/crud-pro/models/SqlCfgModel.d.ts +23 -23
- package/dist/libs/crud-pro/models/SqlCfgModel.js +40 -40
- package/dist/libs/crud-pro/models/SqlSegArg.d.ts +6 -6
- package/dist/libs/crud-pro/models/SqlSegArg.js +12 -12
- package/dist/libs/crud-pro/models/Transaction.d.ts +50 -50
- package/dist/libs/crud-pro/models/Transaction.js +184 -184
- package/dist/libs/crud-pro/models/TransactionMySQL.d.ts +19 -19
- package/dist/libs/crud-pro/models/TransactionMySQL.js +48 -48
- package/dist/libs/crud-pro/models/TransactionPostgres.d.ts +19 -19
- package/dist/libs/crud-pro/models/TransactionPostgres.js +64 -64
- package/dist/libs/crud-pro/models/TransactionSqlServer.d.ts +9 -9
- package/dist/libs/crud-pro/models/TransactionSqlServer.js +61 -61
- package/dist/libs/crud-pro/models/keys.d.ts +111 -111
- package/dist/libs/crud-pro/models/keys.js +156 -156
- package/dist/libs/crud-pro/services/CrudProCachedCfgService.d.ts +11 -11
- package/dist/libs/crud-pro/services/CrudProCachedCfgService.js +73 -73
- package/dist/libs/crud-pro/services/CrudProDataFilterService.d.ts +17 -0
- package/dist/libs/crud-pro/services/CrudProDataFilterService.js +53 -0
- package/dist/libs/crud-pro/services/CrudProExecuteFuncService.d.ts +9 -9
- package/dist/libs/crud-pro/services/CrudProExecuteFuncService.js +125 -125
- package/dist/libs/crud-pro/services/CrudProExecuteSqlService.d.ts +17 -17
- package/dist/libs/crud-pro/services/CrudProExecuteSqlService.js +224 -224
- package/dist/libs/crud-pro/services/CrudProFieldUpdateService.d.ts +9 -9
- package/dist/libs/crud-pro/services/CrudProFieldUpdateService.js +51 -51
- package/dist/libs/crud-pro/services/CrudProFieldValidateService.d.ts +13 -13
- package/dist/libs/crud-pro/services/CrudProFieldValidateService.js +148 -148
- package/dist/libs/crud-pro/services/CrudProGenSqlCondition.d.ts +25 -25
- package/dist/libs/crud-pro/services/CrudProGenSqlCondition.js +385 -385
- package/dist/libs/crud-pro/services/CrudProGenSqlService.d.ts +25 -25
- package/dist/libs/crud-pro/services/CrudProGenSqlService.js +165 -165
- package/dist/libs/crud-pro/services/CrudProOriginToExecuteSql.d.ts +32 -32
- package/dist/libs/crud-pro/services/CrudProOriginToExecuteSql.js +345 -339
- package/dist/libs/crud-pro/services/CrudProServiceBase.d.ts +24 -24
- package/dist/libs/crud-pro/services/CrudProServiceBase.js +88 -88
- package/dist/libs/crud-pro/services/CrudProTableMetaService.d.ts +12 -9
- package/dist/libs/crud-pro/services/CrudProTableMetaService.js +167 -77
- package/dist/libs/crud-pro/services/CurdProServiceHub.d.ts +34 -32
- package/dist/libs/crud-pro/services/CurdProServiceHub.js +69 -64
- package/dist/libs/crud-pro/utils/CompareUtils.d.ts +9 -9
- package/dist/libs/crud-pro/utils/CompareUtils.js +25 -25
- package/dist/libs/crud-pro/utils/CrudMonitor.d.ts +9 -9
- package/dist/libs/crud-pro/utils/CrudMonitor.js +12 -12
- package/dist/libs/crud-pro/utils/DatabaseName.d.ts +9 -9
- package/dist/libs/crud-pro/utils/DatabaseName.js +50 -50
- package/dist/libs/crud-pro/utils/DateTimeUtils.d.ts +7 -7
- package/dist/libs/crud-pro/utils/DateTimeUtils.js +21 -21
- package/dist/libs/crud-pro/utils/MemoryRefreshCache.d.ts +19 -19
- package/dist/libs/crud-pro/utils/MemoryRefreshCache.js +47 -47
- package/dist/libs/crud-pro/utils/MessageParseUtils.d.ts +5 -5
- package/dist/libs/crud-pro/utils/MessageParseUtils.js +33 -33
- package/dist/libs/crud-pro/utils/MixinUtils.d.ts +40 -40
- package/dist/libs/crud-pro/utils/MixinUtils.js +259 -259
- package/dist/libs/crud-pro/utils/ModelUtils.d.ts +11 -11
- package/dist/libs/crud-pro/utils/ModelUtils.js +54 -54
- package/dist/libs/crud-pro/utils/MultiKeyMap.d.ts +11 -11
- package/dist/libs/crud-pro/utils/MultiKeyMap.js +63 -63
- package/dist/libs/crud-pro/utils/SqlFuncUtils.d.ts +5 -5
- package/dist/libs/crud-pro/utils/SqlFuncUtils.js +29 -29
- package/dist/libs/crud-pro/utils/TypeUtils.d.ts +40 -40
- package/dist/libs/crud-pro/utils/TypeUtils.js +166 -166
- package/dist/libs/crud-pro/utils/ValidateUtils.d.ts +3 -3
- package/dist/libs/crud-pro/utils/ValidateUtils.js +165 -165
- package/dist/libs/crud-pro/utils/pool/MySQLUtils.d.ts +3 -3
- package/dist/libs/crud-pro/utils/pool/MySQLUtils.js +19 -19
- package/dist/libs/crud-pro/utils/pool/PostgresUtils.d.ts +3 -3
- package/dist/libs/crud-pro/utils/pool/PostgresUtils.js +20 -20
- package/dist/libs/crud-pro/utils/pool/SqlServerUtils.d.ts +3 -3
- package/dist/libs/crud-pro/utils/pool/SqlServerUtils.js +20 -20
- package/dist/libs/crud-pro/utils/sqlConvert/convertColumnName.d.ts +4 -4
- package/dist/libs/crud-pro/utils/sqlConvert/convertColumnName.js +35 -35
- package/dist/libs/crud-pro/utils/sqlConvert/convertMix.js +24 -24
- package/dist/libs/crud-pro/utils/sqlConvert/convertMsSql.d.ts +2 -2
- package/dist/libs/crud-pro/utils/sqlConvert/convertMsSql.js +14 -14
- package/dist/libs/crud-pro/utils/sqlConvert/convertPgSql.d.ts +2 -2
- package/dist/libs/crud-pro/utils/sqlConvert/convertPgSql.js +14 -14
- package/dist/libs/global-config/global-config.d.ts +71 -71
- package/dist/libs/global-config/global-config.js +38 -38
- package/dist/libs/utils/AsymmetricCrypto.d.ts +76 -76
- package/dist/libs/utils/AsymmetricCrypto.js +261 -261
- package/dist/libs/utils/base64.d.ts +9 -9
- package/dist/libs/utils/base64.js +42 -42
- package/dist/libs/utils/common-dto.d.ts +18 -18
- package/dist/libs/utils/common-dto.js +40 -40
- package/dist/libs/utils/crypto-utils.d.ts +3 -3
- package/dist/libs/utils/crypto-utils.js +55 -55
- package/dist/libs/utils/errorToString.d.ts +20 -20
- package/dist/libs/utils/errorToString.js +79 -79
- package/dist/libs/utils/fatcms-request.d.ts +45 -45
- package/dist/libs/utils/fatcms-request.js +161 -161
- package/dist/libs/utils/format-url.d.ts +17 -17
- package/dist/libs/utils/format-url.js +30 -30
- package/dist/libs/utils/functions.d.ts +11 -11
- package/dist/libs/utils/functions.js +99 -99
- package/dist/libs/utils/ordernum-utils.d.ts +22 -22
- package/dist/libs/utils/ordernum-utils.js +35 -35
- package/dist/libs/utils/parseConfig.d.ts +8 -8
- package/dist/libs/utils/parseConfig.js +47 -47
- package/dist/libs/utils/parseCreateSql.d.ts +10 -10
- package/dist/libs/utils/parseCreateSql.js +87 -87
- package/dist/libs/utils/render-utils.d.ts +40 -40
- package/dist/libs/utils/render-utils.js +158 -158
- package/dist/middleware/forbidden.middleware.d.ts +74 -74
- package/dist/middleware/forbidden.middleware.js +318 -318
- package/dist/middleware/global.middleware.d.ts +40 -40
- package/dist/middleware/global.middleware.js +310 -310
- package/dist/middleware/permission.middleware.d.ts +88 -88
- package/dist/middleware/permission.middleware.js +145 -145
- package/dist/middleware/rediscache.middleware.d.ts +28 -28
- package/dist/middleware/rediscache.middleware.js +114 -114
- package/dist/middleware/redislock.middleware.d.ts +29 -29
- package/dist/middleware/redislock.middleware.js +106 -106
- package/dist/middleware/tx.middleware.d.ts +55 -55
- package/dist/middleware/tx.middleware.js +83 -83
- package/dist/models/AsyncTaskModel.d.ts +74 -74
- package/dist/models/AsyncTaskModel.js +31 -31
- package/dist/models/FlowModel.d.ts +227 -227
- package/dist/models/FlowModel.js +53 -53
- package/dist/models/RedisKeys.d.ts +15 -15
- package/dist/models/RedisKeys.js +18 -18
- package/dist/models/SystemEntities.d.ts +118 -118
- package/dist/models/SystemEntities.js +18 -18
- package/dist/models/SystemPerm.d.ts +96 -96
- package/dist/models/SystemPerm.js +101 -101
- package/dist/models/SystemTables.d.ts +25 -25
- package/dist/models/SystemTables.js +28 -28
- package/dist/models/WorkbenchInfoTools.d.ts +7 -7
- package/dist/models/WorkbenchInfoTools.js +20 -20
- package/dist/models/bizmodels.d.ts +150 -150
- package/dist/models/bizmodels.js +62 -62
- package/dist/models/contextLogger.d.ts +27 -27
- package/dist/models/contextLogger.js +119 -119
- package/dist/models/devops.d.ts +12 -12
- package/dist/models/devops.js +19 -19
- package/dist/models/userSession.d.ts +67 -67
- package/dist/models/userSession.js +179 -179
- package/dist/schedule/anonymousContext.d.ts +15 -15
- package/dist/schedule/anonymousContext.js +74 -74
- package/dist/schedule/index.d.ts +4 -4
- package/dist/schedule/index.js +10 -10
- package/dist/schedule/runSchedule.d.ts +12 -12
- package/dist/schedule/runSchedule.js +68 -68
- package/dist/schedule/scheduleNames.d.ts +15 -15
- package/dist/schedule/scheduleNames.js +19 -19
- package/dist/service/AuthService.d.ts +56 -56
- package/dist/service/AuthService.js +251 -251
- package/dist/service/EnumInfoService.d.ts +30 -30
- package/dist/service/EnumInfoService.js +97 -97
- package/dist/service/FileCenterService.d.ts +64 -64
- package/dist/service/FileCenterService.js +422 -422
- package/dist/service/SysAppService.d.ts +15 -15
- package/dist/service/SysAppService.js +108 -108
- package/dist/service/SysConfigService.d.ts +10 -10
- package/dist/service/SysConfigService.js +64 -64
- package/dist/service/SysDictDataService.d.ts +9 -9
- package/dist/service/SysDictDataService.js +72 -72
- package/dist/service/SysMenuService.d.ts +51 -51
- package/dist/service/SysMenuService.js +58 -58
- package/dist/service/UserAccountService.d.ts +23 -23
- package/dist/service/UserAccountService.js +107 -107
- package/dist/service/UserSessionService.d.ts +43 -43
- package/dist/service/UserSessionService.js +163 -163
- package/dist/service/VisitStatService.d.ts +14 -14
- package/dist/service/VisitStatService.js +161 -161
- package/dist/service/WorkbenchService.d.ts +59 -59
- package/dist/service/WorkbenchService.js +249 -249
- package/dist/service/anyapi/AnyApiSandboxService.d.ts +15 -15
- package/dist/service/anyapi/AnyApiSandboxService.js +110 -110
- package/dist/service/anyapi/AnyApiService.d.ts +27 -27
- package/dist/service/anyapi/AnyApiService.js +181 -181
- package/dist/service/asyncTask/AsyncTaskRunnerService.d.ts +50 -50
- package/dist/service/asyncTask/AsyncTaskRunnerService.js +287 -287
- package/dist/service/asyncTask/AsyncTaskService.d.ts +7 -7
- package/dist/service/asyncTask/AsyncTaskService.js +34 -34
- package/dist/service/asyncTask/handler/ExcelInfoModel.d.ts +10 -10
- package/dist/service/asyncTask/handler/ExcelInfoModel.js +2 -2
- package/dist/service/asyncTask/handler/ExportExcelAsyncTaskHandler.d.ts +7 -7
- package/dist/service/asyncTask/handler/ExportExcelAsyncTaskHandler.js +216 -216
- package/dist/service/asyncTask/handler/ExportExcelByInnerHttpHandler.d.ts +36 -36
- package/dist/service/asyncTask/handler/ExportExcelByInnerHttpHandler.js +141 -141
- package/dist/service/asyncTask/handler/ExportExcelByStdCrudHandler.d.ts +46 -46
- package/dist/service/asyncTask/handler/ExportExcelByStdCrudHandler.js +135 -135
- package/dist/service/base/ApiBaseService.d.ts +22 -22
- package/dist/service/base/ApiBaseService.js +60 -60
- package/dist/service/base/ApiRateLimiter.d.ts +10 -10
- package/dist/service/base/ApiRateLimiter.js +51 -51
- package/dist/service/base/BaseService.d.ts +46 -46
- package/dist/service/base/BaseService.js +131 -131
- package/dist/service/base/cache/CacheServiceFactory.d.ts +26 -26
- package/dist/service/base/cache/CacheServiceFactory.js +122 -122
- package/dist/service/base/cache/CtxCache.d.ts +18 -18
- package/dist/service/base/cache/CtxCache.js +37 -37
- package/dist/service/base/cache/DiskCache.d.ts +19 -19
- package/dist/service/base/cache/DiskCache.js +81 -81
- package/dist/service/base/cache/MemoryCache.d.ts +12 -12
- package/dist/service/base/cache/MemoryCache.js +58 -58
- package/dist/service/base/cache/NoneCache.d.ts +10 -10
- package/dist/service/base/cache/NoneCache.js +19 -19
- package/dist/service/base/cache/RedisCache.d.ts +14 -14
- package/dist/service/base/cache/RedisCache.js +31 -31
- package/dist/service/crudstd/CrudStdActionService.d.ts +17 -17
- package/dist/service/crudstd/CrudStdActionService.js +32 -32
- package/dist/service/crudstd/CrudStdConstant.d.ts +58 -58
- package/dist/service/crudstd/CrudStdConstant.js +64 -64
- package/dist/service/crudstd/CrudStdRelationService.d.ts +11 -11
- package/dist/service/crudstd/CrudStdRelationService.js +179 -179
- package/dist/service/crudstd/CrudStdService.d.ts +59 -59
- package/dist/service/crudstd/CrudStdService.js +348 -348
- package/dist/service/curd/CrudProQuick.d.ts +60 -60
- package/dist/service/curd/CrudProQuick.js +167 -167
- package/dist/service/curd/CurdMixByAccountService.d.ts +14 -14
- package/dist/service/curd/CurdMixByAccountService.js +166 -166
- package/dist/service/curd/CurdMixByDictService.d.ts +12 -12
- package/dist/service/curd/CurdMixByDictService.js +114 -114
- package/dist/service/curd/CurdMixByLinkToCustomService.d.ts +30 -30
- package/dist/service/curd/CurdMixByLinkToCustomService.js +209 -209
- package/dist/service/curd/CurdMixBySysConfigService.d.ts +13 -13
- package/dist/service/curd/CurdMixBySysConfigService.js +116 -116
- package/dist/service/curd/CurdMixByWorkbenchService.d.ts +11 -11
- package/dist/service/curd/CurdMixByWorkbenchService.js +80 -80
- package/dist/service/curd/CurdMixService.d.ts +28 -28
- package/dist/service/curd/CurdMixService.js +100 -100
- package/dist/service/curd/CurdMixUtils.d.ts +57 -57
- package/dist/service/curd/CurdMixUtils.js +331 -331
- package/dist/service/curd/CurdProService.d.ts +32 -32
- package/dist/service/curd/CurdProService.js +215 -215
- package/dist/service/curd/fixCfgModel.d.ts +3 -3
- package/dist/service/curd/fixCfgModel.js +104 -104
- package/dist/service/curd/fixSoftDelete.d.ts +6 -6
- package/dist/service/curd/fixSoftDelete.js +43 -43
- package/dist/service/flow/FlowConfigService.d.ts +41 -41
- package/dist/service/flow/FlowConfigService.js +95 -95
- package/dist/service/flow/FlowInstanceCrudService.d.ts +35 -35
- package/dist/service/flow/FlowInstanceCrudService.js +257 -257
- package/dist/service/flow/FlowInstanceService.d.ts +88 -88
- package/dist/service/flow/FlowInstanceService.js +451 -451
- package/dist/service/proxyapi/ProxyApiLoadService.d.ts +21 -21
- package/dist/service/proxyapi/ProxyApiLoadService.js +167 -167
- package/dist/service/proxyapi/ProxyApiService.d.ts +61 -61
- package/dist/service/proxyapi/ProxyApiService.js +317 -317
- package/dist/service/proxyapi/ProxyApiUtils.d.ts +15 -15
- package/dist/service/proxyapi/ProxyApiUtils.js +34 -34
- package/dist/service/proxyapi/RouteHandler.d.ts +6 -6
- package/dist/service/proxyapi/RouteHandler.js +9 -9
- package/dist/service/proxyapi/RouteTrie.d.ts +12 -12
- package/dist/service/proxyapi/RouteTrie.js +64 -64
- package/dist/service/proxyapi/WeightedRandom.d.ts +9 -9
- package/dist/service/proxyapi/WeightedRandom.js +31 -31
- package/dist/service/proxyapi/WeightedRoundRobin.d.ts +8 -8
- package/dist/service/proxyapi/WeightedRoundRobin.js +33 -33
- package/index.d.ts +10 -10
- package/package.json +87 -87
- package/src/libs/crud-pro/CrudPro.ts +71 -0
- package/src/libs/crud-pro/interfaces.ts +22 -0
- package/src/libs/crud-pro/models/ServiceHub.ts +2 -2
- package/src/libs/crud-pro/services/CrudProDataFilterService.ts +58 -0
- package/src/libs/crud-pro/services/CrudProOriginToExecuteSql.ts +10 -1
- package/src/libs/crud-pro/services/CrudProTableMetaService.ts +145 -40
- package/src/libs/crud-pro/services/CurdProServiceHub.ts +10 -3
- package/src/libs/crud-pro/utils/CrudMonitor.ts +13 -13
- package/src/libs/utils/AsymmetricCrypto.ts +307 -307
- package/src/libs/utils/format-url.ts +29 -29
- package/src/libs/utils/render-utils.ts +223 -223
- package/src/models/WorkbenchInfoTools.ts +19 -19
- package/src/service/SysAppService.ts +103 -103
- package/src/service/SysDictDataService.ts +63 -63
- package/src/service/SysMenuService.ts +87 -87
- package/src/service/WorkbenchService.ts +279 -279
- package/src/service/base/cache/CacheServiceFactory.ts +135 -135
- package/src/service/base/cache/CtxCache.ts +45 -45
- package/src/service/base/cache/DiskCache.ts +90 -90
- package/src/service/base/cache/MemoryCache.ts +68 -68
- package/src/service/base/cache/NoneCache.ts +24 -24
- package/src/service/base/cache/RedisCache.ts +41 -41
- package/src/service/curd/CurdMixByAccountService.ts +177 -177
- package/src/service/curd/fixSoftDelete.ts +58 -58
- package/tsconfig.json +32 -32
|
@@ -1,88 +1,88 @@
|
|
|
1
|
-
import { NextFunction, Context } from '@midwayjs/koa';
|
|
2
|
-
import { Exceptions } from '../libs/crud-pro/exceptions';
|
|
3
|
-
/**
|
|
4
|
-
* 权限校验中间件
|
|
5
|
-
*
|
|
6
|
-
* 应用场景:
|
|
7
|
-
* 1. 功能级权限控制:用户的增删改查操作需要对应的功能权限
|
|
8
|
-
* 2. 数据安全保护:敏感数据的查看和修改需要特定权限
|
|
9
|
-
* 3. 操作审计要求:关键业务操作(如财务、审批)必须有明确权限
|
|
10
|
-
* 4. 多租户隔离:不同租户的用户只能访问授权的功能模块
|
|
11
|
-
*
|
|
12
|
-
* 使用示例:
|
|
13
|
-
* ```typescript
|
|
14
|
-
* @Post('/delete-order', { middleware: [checkPermission('order:delete')] }) // 单个权限
|
|
15
|
-
* async deleteOrder(@Body() body: any) {
|
|
16
|
-
* // 业务逻辑:删除订单(需要order:delete权限)
|
|
17
|
-
* }
|
|
18
|
-
*
|
|
19
|
-
* @Post('/export-financial-report', { middleware: [checkPermission(['report:export', 'finance:view'])] }) // 多个权限任一即可
|
|
20
|
-
* async exportFinancialReport(@Body() body: any) {
|
|
21
|
-
* // 业务逻辑:导出财务报表(需要导出权限或财务查看权限)
|
|
22
|
-
* }
|
|
23
|
-
* ```
|
|
24
|
-
*
|
|
25
|
-
* @param codeList 权限码,支持字符串或数组,数组表示满足任一权限即可
|
|
26
|
-
*/
|
|
27
|
-
declare function checkPermission(codeList: string | string[]): (ctx: Context, next: NextFunction) => Promise<{
|
|
28
|
-
success: boolean;
|
|
29
|
-
message: string;
|
|
30
|
-
code: Exceptions;
|
|
31
|
-
}>;
|
|
32
|
-
/**
|
|
33
|
-
* 角色校验中间件
|
|
34
|
-
*
|
|
35
|
-
* 应用场景:
|
|
36
|
-
* 1. 基于角色的访问控制(RBAC):管理员、普通用户、访客等不同角色
|
|
37
|
-
* 2. 组织架构权限:部门经理、财务主管等组织职位相关功能
|
|
38
|
-
* 3. 业务流程控制:审批流程中的审批人、提交人等角色
|
|
39
|
-
* 4. 粗粒度权限控制:比功能权限更高层级的角色级控制
|
|
40
|
-
*
|
|
41
|
-
* 使用示例:
|
|
42
|
-
* ```typescript
|
|
43
|
-
* @Post('/approve-order', { middleware: [checkRole('manager')] }) // 需要经理角色
|
|
44
|
-
* async approveOrder(@Body() body: any) {
|
|
45
|
-
* // 业务逻辑:审批订单(仅经理可操作)
|
|
46
|
-
* }
|
|
47
|
-
*
|
|
48
|
-
* @Get('/admin-dashboard', { middleware: [checkRole(['admin', 'super_admin'])] }) // 需要管理员或超级管理员角色
|
|
49
|
-
* async getAdminDashboard() {
|
|
50
|
-
* // 业务逻辑:管理员仪表盘
|
|
51
|
-
* }
|
|
52
|
-
* ```
|
|
53
|
-
*
|
|
54
|
-
* @param codeList 角色码,支持字符串或数组,数组表示满足任一角色即可
|
|
55
|
-
*/
|
|
56
|
-
declare function checkRole(codeList: string | string[]): (ctx: Context, next: NextFunction) => Promise<{
|
|
57
|
-
success: boolean;
|
|
58
|
-
message: string;
|
|
59
|
-
code: Exceptions;
|
|
60
|
-
}>;
|
|
61
|
-
/**
|
|
62
|
-
* 登录校验中间件
|
|
63
|
-
*
|
|
64
|
-
* 应用场景:
|
|
65
|
-
* 1. 需要用户身份的接口:个人中心、我的订单等用户相关功能
|
|
66
|
-
* 2. 需要用户上下文的操作:创建内容时记录创建人、修改时记录修改人
|
|
67
|
-
* 3. 个性化功能:基于用户偏好的推荐、用户配置等
|
|
68
|
-
* 4. 通用登录保护:所有需要登录但不需要特定权限的接口
|
|
69
|
-
*
|
|
70
|
-
* 使用示例:
|
|
71
|
-
* ```typescript
|
|
72
|
-
* @Get('/my-profile', { middleware: [checkLogin()] }) // 查看个人信息
|
|
73
|
-
* async getMyProfile() {
|
|
74
|
-
* // 业务逻辑:获取当前登录用户信息
|
|
75
|
-
* }
|
|
76
|
-
*
|
|
77
|
-
* @Post('/create-post', { middleware: [checkLogin()] }) // 创建内容
|
|
78
|
-
* async createPost(@Body() body: any) {
|
|
79
|
-
* // 业务逻辑:创建帖子(自动记录创建人)
|
|
80
|
-
* }
|
|
81
|
-
* ```
|
|
82
|
-
*/
|
|
83
|
-
declare function checkLogin(): (ctx: Context, next: NextFunction) => Promise<{
|
|
84
|
-
success: boolean;
|
|
85
|
-
message: string;
|
|
86
|
-
code: Exceptions;
|
|
87
|
-
}>;
|
|
88
|
-
export { checkPermission, checkLogin, checkRole };
|
|
1
|
+
import { NextFunction, Context } from '@midwayjs/koa';
|
|
2
|
+
import { Exceptions } from '../libs/crud-pro/exceptions';
|
|
3
|
+
/**
|
|
4
|
+
* 权限校验中间件
|
|
5
|
+
*
|
|
6
|
+
* 应用场景:
|
|
7
|
+
* 1. 功能级权限控制:用户的增删改查操作需要对应的功能权限
|
|
8
|
+
* 2. 数据安全保护:敏感数据的查看和修改需要特定权限
|
|
9
|
+
* 3. 操作审计要求:关键业务操作(如财务、审批)必须有明确权限
|
|
10
|
+
* 4. 多租户隔离:不同租户的用户只能访问授权的功能模块
|
|
11
|
+
*
|
|
12
|
+
* 使用示例:
|
|
13
|
+
* ```typescript
|
|
14
|
+
* @Post('/delete-order', { middleware: [checkPermission('order:delete')] }) // 单个权限
|
|
15
|
+
* async deleteOrder(@Body() body: any) {
|
|
16
|
+
* // 业务逻辑:删除订单(需要order:delete权限)
|
|
17
|
+
* }
|
|
18
|
+
*
|
|
19
|
+
* @Post('/export-financial-report', { middleware: [checkPermission(['report:export', 'finance:view'])] }) // 多个权限任一即可
|
|
20
|
+
* async exportFinancialReport(@Body() body: any) {
|
|
21
|
+
* // 业务逻辑:导出财务报表(需要导出权限或财务查看权限)
|
|
22
|
+
* }
|
|
23
|
+
* ```
|
|
24
|
+
*
|
|
25
|
+
* @param codeList 权限码,支持字符串或数组,数组表示满足任一权限即可
|
|
26
|
+
*/
|
|
27
|
+
declare function checkPermission(codeList: string | string[]): (ctx: Context, next: NextFunction) => Promise<{
|
|
28
|
+
success: boolean;
|
|
29
|
+
message: string;
|
|
30
|
+
code: Exceptions;
|
|
31
|
+
}>;
|
|
32
|
+
/**
|
|
33
|
+
* 角色校验中间件
|
|
34
|
+
*
|
|
35
|
+
* 应用场景:
|
|
36
|
+
* 1. 基于角色的访问控制(RBAC):管理员、普通用户、访客等不同角色
|
|
37
|
+
* 2. 组织架构权限:部门经理、财务主管等组织职位相关功能
|
|
38
|
+
* 3. 业务流程控制:审批流程中的审批人、提交人等角色
|
|
39
|
+
* 4. 粗粒度权限控制:比功能权限更高层级的角色级控制
|
|
40
|
+
*
|
|
41
|
+
* 使用示例:
|
|
42
|
+
* ```typescript
|
|
43
|
+
* @Post('/approve-order', { middleware: [checkRole('manager')] }) // 需要经理角色
|
|
44
|
+
* async approveOrder(@Body() body: any) {
|
|
45
|
+
* // 业务逻辑:审批订单(仅经理可操作)
|
|
46
|
+
* }
|
|
47
|
+
*
|
|
48
|
+
* @Get('/admin-dashboard', { middleware: [checkRole(['admin', 'super_admin'])] }) // 需要管理员或超级管理员角色
|
|
49
|
+
* async getAdminDashboard() {
|
|
50
|
+
* // 业务逻辑:管理员仪表盘
|
|
51
|
+
* }
|
|
52
|
+
* ```
|
|
53
|
+
*
|
|
54
|
+
* @param codeList 角色码,支持字符串或数组,数组表示满足任一角色即可
|
|
55
|
+
*/
|
|
56
|
+
declare function checkRole(codeList: string | string[]): (ctx: Context, next: NextFunction) => Promise<{
|
|
57
|
+
success: boolean;
|
|
58
|
+
message: string;
|
|
59
|
+
code: Exceptions;
|
|
60
|
+
}>;
|
|
61
|
+
/**
|
|
62
|
+
* 登录校验中间件
|
|
63
|
+
*
|
|
64
|
+
* 应用场景:
|
|
65
|
+
* 1. 需要用户身份的接口:个人中心、我的订单等用户相关功能
|
|
66
|
+
* 2. 需要用户上下文的操作:创建内容时记录创建人、修改时记录修改人
|
|
67
|
+
* 3. 个性化功能:基于用户偏好的推荐、用户配置等
|
|
68
|
+
* 4. 通用登录保护:所有需要登录但不需要特定权限的接口
|
|
69
|
+
*
|
|
70
|
+
* 使用示例:
|
|
71
|
+
* ```typescript
|
|
72
|
+
* @Get('/my-profile', { middleware: [checkLogin()] }) // 查看个人信息
|
|
73
|
+
* async getMyProfile() {
|
|
74
|
+
* // 业务逻辑:获取当前登录用户信息
|
|
75
|
+
* }
|
|
76
|
+
*
|
|
77
|
+
* @Post('/create-post', { middleware: [checkLogin()] }) // 创建内容
|
|
78
|
+
* async createPost(@Body() body: any) {
|
|
79
|
+
* // 业务逻辑:创建帖子(自动记录创建人)
|
|
80
|
+
* }
|
|
81
|
+
* ```
|
|
82
|
+
*/
|
|
83
|
+
declare function checkLogin(): (ctx: Context, next: NextFunction) => Promise<{
|
|
84
|
+
success: boolean;
|
|
85
|
+
message: string;
|
|
86
|
+
code: Exceptions;
|
|
87
|
+
}>;
|
|
88
|
+
export { checkPermission, checkLogin, checkRole };
|
|
@@ -1,145 +1,145 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.checkRole = exports.checkLogin = exports.checkPermission = void 0;
|
|
4
|
-
const exceptions_1 = require("../libs/crud-pro/exceptions");
|
|
5
|
-
/**
|
|
6
|
-
* 权限校验中间件
|
|
7
|
-
*
|
|
8
|
-
* 应用场景:
|
|
9
|
-
* 1. 功能级权限控制:用户的增删改查操作需要对应的功能权限
|
|
10
|
-
* 2. 数据安全保护:敏感数据的查看和修改需要特定权限
|
|
11
|
-
* 3. 操作审计要求:关键业务操作(如财务、审批)必须有明确权限
|
|
12
|
-
* 4. 多租户隔离:不同租户的用户只能访问授权的功能模块
|
|
13
|
-
*
|
|
14
|
-
* 使用示例:
|
|
15
|
-
* ```typescript
|
|
16
|
-
* @Post('/delete-order', { middleware: [checkPermission('order:delete')] }) // 单个权限
|
|
17
|
-
* async deleteOrder(@Body() body: any) {
|
|
18
|
-
* // 业务逻辑:删除订单(需要order:delete权限)
|
|
19
|
-
* }
|
|
20
|
-
*
|
|
21
|
-
* @Post('/export-financial-report', { middleware: [checkPermission(['report:export', 'finance:view'])] }) // 多个权限任一即可
|
|
22
|
-
* async exportFinancialReport(@Body() body: any) {
|
|
23
|
-
* // 业务逻辑:导出财务报表(需要导出权限或财务查看权限)
|
|
24
|
-
* }
|
|
25
|
-
* ```
|
|
26
|
-
*
|
|
27
|
-
* @param codeList 权限码,支持字符串或数组,数组表示满足任一权限即可
|
|
28
|
-
*/
|
|
29
|
-
function checkPermission(codeList) {
|
|
30
|
-
return async (ctx, next) => {
|
|
31
|
-
const userSession = ctx.userSession;
|
|
32
|
-
// 只有登录用户才会有功能点权限,所以必须登录
|
|
33
|
-
if (!userSession.isLogin()) {
|
|
34
|
-
return {
|
|
35
|
-
success: false,
|
|
36
|
-
message: '用户未登录, 请先登录',
|
|
37
|
-
code: exceptions_1.Exceptions.NOT_LOGIN,
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
// 查询当前用户是否有此功能点的权限
|
|
41
|
-
const hasPermission = userSession.hasAnyPermission(codeList);
|
|
42
|
-
if (!hasPermission) {
|
|
43
|
-
let message;
|
|
44
|
-
const loginName = userSession.getSessionInfo().loginName;
|
|
45
|
-
// 针对体验账号的特殊提示
|
|
46
|
-
if (loginName === 'devopsviewer') {
|
|
47
|
-
message = '开放体验账号不支持这些操作:新增、修改、删除、上传';
|
|
48
|
-
}
|
|
49
|
-
else {
|
|
50
|
-
message = '缺少权限: ' + JSON.stringify(codeList);
|
|
51
|
-
}
|
|
52
|
-
return {
|
|
53
|
-
success: false,
|
|
54
|
-
message: message,
|
|
55
|
-
code: exceptions_1.Exceptions.NO_AUTH,
|
|
56
|
-
};
|
|
57
|
-
}
|
|
58
|
-
await next();
|
|
59
|
-
};
|
|
60
|
-
}
|
|
61
|
-
exports.checkPermission = checkPermission;
|
|
62
|
-
/**
|
|
63
|
-
* 角色校验中间件
|
|
64
|
-
*
|
|
65
|
-
* 应用场景:
|
|
66
|
-
* 1. 基于角色的访问控制(RBAC):管理员、普通用户、访客等不同角色
|
|
67
|
-
* 2. 组织架构权限:部门经理、财务主管等组织职位相关功能
|
|
68
|
-
* 3. 业务流程控制:审批流程中的审批人、提交人等角色
|
|
69
|
-
* 4. 粗粒度权限控制:比功能权限更高层级的角色级控制
|
|
70
|
-
*
|
|
71
|
-
* 使用示例:
|
|
72
|
-
* ```typescript
|
|
73
|
-
* @Post('/approve-order', { middleware: [checkRole('manager')] }) // 需要经理角色
|
|
74
|
-
* async approveOrder(@Body() body: any) {
|
|
75
|
-
* // 业务逻辑:审批订单(仅经理可操作)
|
|
76
|
-
* }
|
|
77
|
-
*
|
|
78
|
-
* @Get('/admin-dashboard', { middleware: [checkRole(['admin', 'super_admin'])] }) // 需要管理员或超级管理员角色
|
|
79
|
-
* async getAdminDashboard() {
|
|
80
|
-
* // 业务逻辑:管理员仪表盘
|
|
81
|
-
* }
|
|
82
|
-
* ```
|
|
83
|
-
*
|
|
84
|
-
* @param codeList 角色码,支持字符串或数组,数组表示满足任一角色即可
|
|
85
|
-
*/
|
|
86
|
-
function checkRole(codeList) {
|
|
87
|
-
return async (ctx, next) => {
|
|
88
|
-
const userSession = ctx.userSession;
|
|
89
|
-
// 只有登录用户才会有功能点权限,所以必须登录
|
|
90
|
-
if (!userSession.isLogin()) {
|
|
91
|
-
return {
|
|
92
|
-
success: false,
|
|
93
|
-
message: '用户未登录, 请先登录',
|
|
94
|
-
code: exceptions_1.Exceptions.NOT_LOGIN,
|
|
95
|
-
};
|
|
96
|
-
}
|
|
97
|
-
// 查询当前用户是否有此角色
|
|
98
|
-
const hasRole = userSession.hasAnyRole(codeList);
|
|
99
|
-
if (!hasRole) {
|
|
100
|
-
return {
|
|
101
|
-
success: false,
|
|
102
|
-
message: '缺少角色权限: ' + JSON.stringify(codeList),
|
|
103
|
-
code: exceptions_1.Exceptions.NO_AUTH,
|
|
104
|
-
};
|
|
105
|
-
}
|
|
106
|
-
await next();
|
|
107
|
-
};
|
|
108
|
-
}
|
|
109
|
-
exports.checkRole = checkRole;
|
|
110
|
-
/**
|
|
111
|
-
* 登录校验中间件
|
|
112
|
-
*
|
|
113
|
-
* 应用场景:
|
|
114
|
-
* 1. 需要用户身份的接口:个人中心、我的订单等用户相关功能
|
|
115
|
-
* 2. 需要用户上下文的操作:创建内容时记录创建人、修改时记录修改人
|
|
116
|
-
* 3. 个性化功能:基于用户偏好的推荐、用户配置等
|
|
117
|
-
* 4. 通用登录保护:所有需要登录但不需要特定权限的接口
|
|
118
|
-
*
|
|
119
|
-
* 使用示例:
|
|
120
|
-
* ```typescript
|
|
121
|
-
* @Get('/my-profile', { middleware: [checkLogin()] }) // 查看个人信息
|
|
122
|
-
* async getMyProfile() {
|
|
123
|
-
* // 业务逻辑:获取当前登录用户信息
|
|
124
|
-
* }
|
|
125
|
-
*
|
|
126
|
-
* @Post('/create-post', { middleware: [checkLogin()] }) // 创建内容
|
|
127
|
-
* async createPost(@Body() body: any) {
|
|
128
|
-
* // 业务逻辑:创建帖子(自动记录创建人)
|
|
129
|
-
* }
|
|
130
|
-
* ```
|
|
131
|
-
*/
|
|
132
|
-
function checkLogin() {
|
|
133
|
-
return async (ctx, next) => {
|
|
134
|
-
const userSession = ctx.userSession;
|
|
135
|
-
if (!userSession.isLogin()) {
|
|
136
|
-
return {
|
|
137
|
-
success: false,
|
|
138
|
-
message: '用户未登录, 请先登录',
|
|
139
|
-
code: exceptions_1.Exceptions.NOT_LOGIN,
|
|
140
|
-
};
|
|
141
|
-
}
|
|
142
|
-
await next();
|
|
143
|
-
};
|
|
144
|
-
}
|
|
145
|
-
exports.checkLogin = checkLogin;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.checkRole = exports.checkLogin = exports.checkPermission = void 0;
|
|
4
|
+
const exceptions_1 = require("../libs/crud-pro/exceptions");
|
|
5
|
+
/**
|
|
6
|
+
* 权限校验中间件
|
|
7
|
+
*
|
|
8
|
+
* 应用场景:
|
|
9
|
+
* 1. 功能级权限控制:用户的增删改查操作需要对应的功能权限
|
|
10
|
+
* 2. 数据安全保护:敏感数据的查看和修改需要特定权限
|
|
11
|
+
* 3. 操作审计要求:关键业务操作(如财务、审批)必须有明确权限
|
|
12
|
+
* 4. 多租户隔离:不同租户的用户只能访问授权的功能模块
|
|
13
|
+
*
|
|
14
|
+
* 使用示例:
|
|
15
|
+
* ```typescript
|
|
16
|
+
* @Post('/delete-order', { middleware: [checkPermission('order:delete')] }) // 单个权限
|
|
17
|
+
* async deleteOrder(@Body() body: any) {
|
|
18
|
+
* // 业务逻辑:删除订单(需要order:delete权限)
|
|
19
|
+
* }
|
|
20
|
+
*
|
|
21
|
+
* @Post('/export-financial-report', { middleware: [checkPermission(['report:export', 'finance:view'])] }) // 多个权限任一即可
|
|
22
|
+
* async exportFinancialReport(@Body() body: any) {
|
|
23
|
+
* // 业务逻辑:导出财务报表(需要导出权限或财务查看权限)
|
|
24
|
+
* }
|
|
25
|
+
* ```
|
|
26
|
+
*
|
|
27
|
+
* @param codeList 权限码,支持字符串或数组,数组表示满足任一权限即可
|
|
28
|
+
*/
|
|
29
|
+
function checkPermission(codeList) {
|
|
30
|
+
return async (ctx, next) => {
|
|
31
|
+
const userSession = ctx.userSession;
|
|
32
|
+
// 只有登录用户才会有功能点权限,所以必须登录
|
|
33
|
+
if (!userSession.isLogin()) {
|
|
34
|
+
return {
|
|
35
|
+
success: false,
|
|
36
|
+
message: '用户未登录, 请先登录',
|
|
37
|
+
code: exceptions_1.Exceptions.NOT_LOGIN,
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
// 查询当前用户是否有此功能点的权限
|
|
41
|
+
const hasPermission = userSession.hasAnyPermission(codeList);
|
|
42
|
+
if (!hasPermission) {
|
|
43
|
+
let message;
|
|
44
|
+
const loginName = userSession.getSessionInfo().loginName;
|
|
45
|
+
// 针对体验账号的特殊提示
|
|
46
|
+
if (loginName === 'devopsviewer') {
|
|
47
|
+
message = '开放体验账号不支持这些操作:新增、修改、删除、上传';
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
message = '缺少权限: ' + JSON.stringify(codeList);
|
|
51
|
+
}
|
|
52
|
+
return {
|
|
53
|
+
success: false,
|
|
54
|
+
message: message,
|
|
55
|
+
code: exceptions_1.Exceptions.NO_AUTH,
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
await next();
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
exports.checkPermission = checkPermission;
|
|
62
|
+
/**
|
|
63
|
+
* 角色校验中间件
|
|
64
|
+
*
|
|
65
|
+
* 应用场景:
|
|
66
|
+
* 1. 基于角色的访问控制(RBAC):管理员、普通用户、访客等不同角色
|
|
67
|
+
* 2. 组织架构权限:部门经理、财务主管等组织职位相关功能
|
|
68
|
+
* 3. 业务流程控制:审批流程中的审批人、提交人等角色
|
|
69
|
+
* 4. 粗粒度权限控制:比功能权限更高层级的角色级控制
|
|
70
|
+
*
|
|
71
|
+
* 使用示例:
|
|
72
|
+
* ```typescript
|
|
73
|
+
* @Post('/approve-order', { middleware: [checkRole('manager')] }) // 需要经理角色
|
|
74
|
+
* async approveOrder(@Body() body: any) {
|
|
75
|
+
* // 业务逻辑:审批订单(仅经理可操作)
|
|
76
|
+
* }
|
|
77
|
+
*
|
|
78
|
+
* @Get('/admin-dashboard', { middleware: [checkRole(['admin', 'super_admin'])] }) // 需要管理员或超级管理员角色
|
|
79
|
+
* async getAdminDashboard() {
|
|
80
|
+
* // 业务逻辑:管理员仪表盘
|
|
81
|
+
* }
|
|
82
|
+
* ```
|
|
83
|
+
*
|
|
84
|
+
* @param codeList 角色码,支持字符串或数组,数组表示满足任一角色即可
|
|
85
|
+
*/
|
|
86
|
+
function checkRole(codeList) {
|
|
87
|
+
return async (ctx, next) => {
|
|
88
|
+
const userSession = ctx.userSession;
|
|
89
|
+
// 只有登录用户才会有功能点权限,所以必须登录
|
|
90
|
+
if (!userSession.isLogin()) {
|
|
91
|
+
return {
|
|
92
|
+
success: false,
|
|
93
|
+
message: '用户未登录, 请先登录',
|
|
94
|
+
code: exceptions_1.Exceptions.NOT_LOGIN,
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
// 查询当前用户是否有此角色
|
|
98
|
+
const hasRole = userSession.hasAnyRole(codeList);
|
|
99
|
+
if (!hasRole) {
|
|
100
|
+
return {
|
|
101
|
+
success: false,
|
|
102
|
+
message: '缺少角色权限: ' + JSON.stringify(codeList),
|
|
103
|
+
code: exceptions_1.Exceptions.NO_AUTH,
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
await next();
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
exports.checkRole = checkRole;
|
|
110
|
+
/**
|
|
111
|
+
* 登录校验中间件
|
|
112
|
+
*
|
|
113
|
+
* 应用场景:
|
|
114
|
+
* 1. 需要用户身份的接口:个人中心、我的订单等用户相关功能
|
|
115
|
+
* 2. 需要用户上下文的操作:创建内容时记录创建人、修改时记录修改人
|
|
116
|
+
* 3. 个性化功能:基于用户偏好的推荐、用户配置等
|
|
117
|
+
* 4. 通用登录保护:所有需要登录但不需要特定权限的接口
|
|
118
|
+
*
|
|
119
|
+
* 使用示例:
|
|
120
|
+
* ```typescript
|
|
121
|
+
* @Get('/my-profile', { middleware: [checkLogin()] }) // 查看个人信息
|
|
122
|
+
* async getMyProfile() {
|
|
123
|
+
* // 业务逻辑:获取当前登录用户信息
|
|
124
|
+
* }
|
|
125
|
+
*
|
|
126
|
+
* @Post('/create-post', { middleware: [checkLogin()] }) // 创建内容
|
|
127
|
+
* async createPost(@Body() body: any) {
|
|
128
|
+
* // 业务逻辑:创建帖子(自动记录创建人)
|
|
129
|
+
* }
|
|
130
|
+
* ```
|
|
131
|
+
*/
|
|
132
|
+
function checkLogin() {
|
|
133
|
+
return async (ctx, next) => {
|
|
134
|
+
const userSession = ctx.userSession;
|
|
135
|
+
if (!userSession.isLogin()) {
|
|
136
|
+
return {
|
|
137
|
+
success: false,
|
|
138
|
+
message: '用户未登录, 请先登录',
|
|
139
|
+
code: exceptions_1.Exceptions.NOT_LOGIN,
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
await next();
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
exports.checkLogin = checkLogin;
|
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
import { NextFunction, Context } from '@midwayjs/koa';
|
|
2
|
-
/**
|
|
3
|
-
* Redis缓存中间件
|
|
4
|
-
*
|
|
5
|
-
* 应用场景:
|
|
6
|
-
* 1. 高频查询接口:用户列表、商品详情等读多写少的接口
|
|
7
|
-
* 2. 计算密集型接口:统计报表、数据聚合等耗时计算结果
|
|
8
|
-
* 3. 外部API调用:第三方接口响应数据缓存,减少调用次数和费用
|
|
9
|
-
* 4. 数据库压力缓解:热点数据缓存,降低数据库查询压力
|
|
10
|
-
*
|
|
11
|
-
* 使用示例:
|
|
12
|
-
* ```typescript
|
|
13
|
-
* @Get('/product-detail', { middleware: [redisCache(['query.productId'], 300)] }) // 商品详情缓存5分钟
|
|
14
|
-
* async getProductDetail(@Query() query: any) {
|
|
15
|
-
* // 业务逻辑:查询商品详情
|
|
16
|
-
* }
|
|
17
|
-
*
|
|
18
|
-
* @Post('/report', { middleware: [redisCache(['body.dateRange', 'body.type'], 1800)] }) // 报表数据缓存30分钟
|
|
19
|
-
* async generateReport(@Body() body: any) {
|
|
20
|
-
* // 业务逻辑:生成统计报表
|
|
21
|
-
* }
|
|
22
|
-
* ```
|
|
23
|
-
*
|
|
24
|
-
* @param cacheKeyConfigList 缓存键配置,如 ['query.id', 'body.type']
|
|
25
|
-
* @param cacheTimeSecond 缓存时长(秒),默认60秒,范围1-3600秒
|
|
26
|
-
*/
|
|
27
|
-
declare function redisCache(cacheKeyConfigList: string[], cacheTimeSecond?: number): (ctx: Context, next: NextFunction) => Promise<any>;
|
|
28
|
-
export { redisCache };
|
|
1
|
+
import { NextFunction, Context } from '@midwayjs/koa';
|
|
2
|
+
/**
|
|
3
|
+
* Redis缓存中间件
|
|
4
|
+
*
|
|
5
|
+
* 应用场景:
|
|
6
|
+
* 1. 高频查询接口:用户列表、商品详情等读多写少的接口
|
|
7
|
+
* 2. 计算密集型接口:统计报表、数据聚合等耗时计算结果
|
|
8
|
+
* 3. 外部API调用:第三方接口响应数据缓存,减少调用次数和费用
|
|
9
|
+
* 4. 数据库压力缓解:热点数据缓存,降低数据库查询压力
|
|
10
|
+
*
|
|
11
|
+
* 使用示例:
|
|
12
|
+
* ```typescript
|
|
13
|
+
* @Get('/product-detail', { middleware: [redisCache(['query.productId'], 300)] }) // 商品详情缓存5分钟
|
|
14
|
+
* async getProductDetail(@Query() query: any) {
|
|
15
|
+
* // 业务逻辑:查询商品详情
|
|
16
|
+
* }
|
|
17
|
+
*
|
|
18
|
+
* @Post('/report', { middleware: [redisCache(['body.dateRange', 'body.type'], 1800)] }) // 报表数据缓存30分钟
|
|
19
|
+
* async generateReport(@Body() body: any) {
|
|
20
|
+
* // 业务逻辑:生成统计报表
|
|
21
|
+
* }
|
|
22
|
+
* ```
|
|
23
|
+
*
|
|
24
|
+
* @param cacheKeyConfigList 缓存键配置,如 ['query.id', 'body.type']
|
|
25
|
+
* @param cacheTimeSecond 缓存时长(秒),默认60秒,范围1-3600秒
|
|
26
|
+
*/
|
|
27
|
+
declare function redisCache(cacheKeyConfigList: string[], cacheTimeSecond?: number): (ctx: Context, next: NextFunction) => Promise<any>;
|
|
28
|
+
export { redisCache };
|