diff --git a/src/main/java/com/zsc/edu/dify/modules/dify/controller/V1ChatController.java b/src/main/java/com/zsc/edu/dify/modules/dify/controller/V1ChatController.java index bde45fc..71785eb 100644 --- a/src/main/java/com/zsc/edu/dify/modules/dify/controller/V1ChatController.java +++ b/src/main/java/com/zsc/edu/dify/modules/dify/controller/V1ChatController.java @@ -1,6 +1,7 @@ package com.zsc.edu.dify.modules.dify.controller; import com.zsc.edu.dify.exception.ExceptionUtil; +import com.zsc.edu.dify.framework.mybatisplus.DataPermission; import com.zsc.edu.dify.framework.security.SecurityUtil; import com.zsc.edu.dify.modules.dify.service.AppEntityService; import com.zsc.edu.dify.modules.operationLog.entity.OperationLogAnnotation; @@ -40,7 +41,7 @@ public class V1ChatController { * apikey 建议在数据库进行存储,前端调用时传智能体 id,从数据库查询 */ @PostMapping("/completions/{appId}") - @PreAuthorize("hasAuthority('dify:chat:query')") + @PreAuthorize("hasAuthority('dify:chat:send')") @OperationLogAnnotation(content = "'dify对话'", operationType = "发送") public ChatMessageSendResponse sendChatMessage( @RequestBody ChatMessageSendRequest sendRequest, @@ -92,6 +93,7 @@ public class V1ChatController { * @param taskId 任务id */ @PatchMapping("/stream/stop") + @PreAuthorize("hasAuthority('dify:chat:stop')") public void stopMessagesStream(@RequestParam String taskId, @RequestParam String appId) { String apiKey = appEntityService.getApikey(appId); String userId = SecurityUtil.getUserInfo().id.toString(); diff --git a/src/main/java/com/zsc/edu/dify/modules/dify/controller/V1DatasetController.java b/src/main/java/com/zsc/edu/dify/modules/dify/controller/V1DatasetController.java index 992d156..1632c80 100644 --- a/src/main/java/com/zsc/edu/dify/modules/dify/controller/V1DatasetController.java +++ b/src/main/java/com/zsc/edu/dify/modules/dify/controller/V1DatasetController.java @@ -120,7 +120,7 @@ public class V1DatasetController { * @return */ @GetMapping("/retrieve") - @PreAuthorize("hasAuthority('dify:dataset:query')") + @PreAuthorize("hasAuthority('dify:dataset:retrieve')") public RetrieveResponse retrieve(@RequestBody RetrieveRequest request){ return difyDataset.retrieve(request); } diff --git a/src/main/java/com/zsc/edu/dify/modules/dify/controller/V1ServerController.java b/src/main/java/com/zsc/edu/dify/modules/dify/controller/V1ServerController.java index 520b4bb..871b84a 100644 --- a/src/main/java/com/zsc/edu/dify/modules/dify/controller/V1ServerController.java +++ b/src/main/java/com/zsc/edu/dify/modules/dify/controller/V1ServerController.java @@ -1,6 +1,7 @@ package com.zsc.edu.dify.modules.dify.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.zsc.edu.dify.framework.mybatisplus.DataPermission; import com.zsc.edu.dify.modules.dify.entity.AppEntity; import com.zsc.edu.dify.modules.dify.service.AppEntityService; import com.zsc.edu.dify.modules.operationLog.entity.OperationLogAnnotation; @@ -31,6 +32,7 @@ public class V1ServerController { */ @GetMapping("/apps") @PreAuthorize("hasAuthority('dify:server:query')") + @DataPermission public List<AppsResponseVO> getApps(String mode, String name) { return appEntityService.getApps(mode, name); } @@ -63,7 +65,7 @@ public class V1ServerController { * @return */ @PostMapping("/api-key/init/{id}") - @PreAuthorize("hasAuthority('dify:server:create')") + @PreAuthorize("hasAuthority('dify:server:init')") public List<ApiKeyResponseVO> initAppApiKey(@PathVariable("id") String id) { return difyServer.initAppApiKey(id); } @@ -83,7 +85,7 @@ public class V1ServerController { * @return */ @PostMapping("/api-key/dataset/init") - @PreAuthorize("hasAuthority('dify:server:create')") + @PreAuthorize("hasAuthority('dify:server:init')") public List<DatasetApiKeyResponseVO> initDatasetApiKey() { return difyServer.initDatasetApiKey(); } @@ -107,6 +109,7 @@ public class V1ServerController { */ @GetMapping("/apps/enabled") @PreAuthorize("hasAuthority('dify:server:query')") + @DataPermission public List<AppEntity> getEnableApps() { LambdaQueryWrapper<AppEntity> queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(AppEntity::isEnabled, true); diff --git a/src/main/java/com/zsc/edu/dify/modules/dify/controller/V1WorkflowController.java b/src/main/java/com/zsc/edu/dify/modules/dify/controller/V1WorkflowController.java index 2f0a4d6..910bd96 100644 --- a/src/main/java/com/zsc/edu/dify/modules/dify/controller/V1WorkflowController.java +++ b/src/main/java/com/zsc/edu/dify/modules/dify/controller/V1WorkflowController.java @@ -1,6 +1,7 @@ package com.zsc.edu.dify.modules.dify.controller; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.zsc.edu.dify.framework.mybatisplus.DataPermission; import com.zsc.edu.dify.framework.security.SecurityUtil; import com.zsc.edu.dify.modules.dify.entity.WorkflowData; import com.zsc.edu.dify.modules.dify.service.AppEntityService; @@ -104,6 +105,7 @@ public class V1WorkflowController { */ @GetMapping("/list/{appId}") @PreAuthorize("hasAuthority('dify:workflow:query')") + @DataPermission public List<WorkflowData> list(@PathVariable String appId){ return difyWorkflowService.list(new QueryWrapper<WorkflowData>().eq("app_id",appId)); } diff --git a/src/main/java/com/zsc/edu/dify/modules/dify/entity/AppEntity.java b/src/main/java/com/zsc/edu/dify/modules/dify/entity/AppEntity.java index 9324f6e..c98c04f 100644 --- a/src/main/java/com/zsc/edu/dify/modules/dify/entity/AppEntity.java +++ b/src/main/java/com/zsc/edu/dify/modules/dify/entity/AppEntity.java @@ -1,5 +1,6 @@ package com.zsc.edu.dify.modules.dify.entity; +import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.zsc.edu.dify.framework.json.JsonbTypeHandler; @@ -46,4 +47,9 @@ public class AppEntity extends AppsResponseVO { @TableField(exist = false) private List<AppEntity> children = null; + @TableField(value = "create_id", fill = FieldFill.INSERT) + private Long createId; + + @TableField(value = "dept_id", fill = FieldFill.INSERT) + private Long deptId; } diff --git a/src/main/java/com/zsc/edu/dify/modules/dify/entity/WorkflowData.java b/src/main/java/com/zsc/edu/dify/modules/dify/entity/WorkflowData.java index cfebc62..373d1e5 100644 --- a/src/main/java/com/zsc/edu/dify/modules/dify/entity/WorkflowData.java +++ b/src/main/java/com/zsc/edu/dify/modules/dify/entity/WorkflowData.java @@ -25,4 +25,10 @@ public class WorkflowData { private Long userId; private String appId; + + @TableField(value = "create_id", fill = FieldFill.INSERT) + private Long createId; + + @TableField(value = "dept_id", fill = FieldFill.INSERT) + private Long deptId; } diff --git a/src/test/java/com/zsc/edu/dify/modules/system/service/impl/MenuServiceImplTest.java b/src/test/java/com/zsc/edu/dify/modules/system/service/impl/MenuServiceImplTest.java index b7b29fd..7deab2b 100644 --- a/src/test/java/com/zsc/edu/dify/modules/system/service/impl/MenuServiceImplTest.java +++ b/src/test/java/com/zsc/edu/dify/modules/system/service/impl/MenuServiceImplTest.java @@ -71,22 +71,29 @@ class MenuServiceImplTest { Menu bulletinDelete = new Menu(bulletin.getId(), Menu.Type.OPERATION, "bulletinDelete", null, "公告删除", null, true, false, 1, "message:bulletin:delete", ""); Menu operationLogQuery = new Menu(operationLog.getId(), Menu.Type.OPERATION, "operationLogQuery", null, "操作日志查询", null, true, false, 1, "operationLog:query", ""); Menu operationLogDelete = new Menu(operationLog.getId(), Menu.Type.OPERATION, "operationLogDelete", null, "操作日志删除", null, true, false, 1, "operationLog:delete", ""); - Menu difyChatQuery = new Menu(dify.getId(), Menu.Type.OPERATION, "difyChatQuery", null, "difyChat查询", null, true, false, 1, "difyChat:query", ""); - Menu difyChatCreate = new Menu(dify.getId(), Menu.Type.OPERATION, "difyChatCreate", null, "difyChat新增", null, true, false, 1, "difyChat:create", ""); - Menu difyChatUpdate = new Menu(dify.getId(), Menu.Type.OPERATION, "difyChatUpdate", null, "difyChat修改", null, true, false, 1, "difyChat:update", ""); - Menu difyChatDelete = new Menu(dify.getId(), Menu.Type.OPERATION, "difyChatDelete", null, "difyChat删除", null, true, false, 1, "difyChat:delete", ""); - Menu difyServerQuery = new Menu(dify.getId(), Menu.Type.OPERATION, "difyServerQuery", null, "difyServer查询", null, true, false, 1, "difyServer:query", ""); - Menu difyServerCreate = new Menu(dify.getId(), Menu.Type.OPERATION, "difyServerCreate", null, "difyServer新增", null, true, false, 1, "difyServer:create", ""); - Menu difyServerUpdate = new Menu(dify.getId(), Menu.Type.OPERATION, "difyServerUpdate", null, "difyServer修改", null, true, false, 1, "difyServer:update", ""); - Menu difyServerDelete = new Menu(dify.getId(), Menu.Type.OPERATION, "difyServerDelete", null, "difyServer删除", null, true, false, 1, "difyServer:delete", ""); - Menu difyDataSetQuery = new Menu(dify.getId(), Menu.Type.OPERATION, "difyDataSetQuery", null, "difyDataSet查询", null, true, false, 1, "difyDataSet:query", ""); - Menu difyDataSetCreate = new Menu(dify.getId(), Menu.Type.OPERATION, "difyDataSetCreate", null, "difyDataSet新增", null, true, false, 1, "difyDataSet:create", ""); - Menu difyDataSetUpdate = new Menu(dify.getId(), Menu.Type.OPERATION, "difyDataSetUpdate", null, "difyDataSet修改", null, true, false, 1, "difyDataSet:update", ""); - Menu difyDataSetDelete = new Menu(dify.getId(), Menu.Type.OPERATION, "difyDataSetDelete", null, "difyDataSet删除", null, true, false, 1, "difyDataSet:delete", ""); - Menu difyWorkFlowQuery = new Menu(dify.getId(), Menu.Type.OPERATION, "difyWorkFlowQuery", null, "difyWorkFlow查询", null, true, false, 1, "difyWorkFlow:query", ""); - Menu difyWorkFlowCreate = new Menu(dify.getId(), Menu.Type.OPERATION, "difyWorkFlowCreate", null, "difyWorkFlow新增", null, true, false, 1, "difyWorkFlow:create", ""); - Menu difyWorkFlowUpdate = new Menu(dify.getId(), Menu.Type.OPERATION, "difyWorkFlowUpdate", null, "difyWorkFlow修改", null, true, false, 1, "difyWorkFlow:update", ""); - Menu difyWorkFlowDelete = new Menu(dify.getId(), Menu.Type.OPERATION, "difyWorkFlowDelete", null, "difyWorkFlow删除", null, true, false, 1, "difyWorkFlow:delete", ""); + Menu difyChatQuery = new Menu(dify.getId(), Menu.Type.OPERATION, "difyChatQuery", null, "difyChat查询", null, true, false, 1, "dify:chat:query", ""); + Menu difyChatCreate = new Menu(dify.getId(), Menu.Type.OPERATION, "difyChatCreate", null, "difyChat新增", null, true, false, 1, "dify:chat:create", ""); + Menu difyChatUpdate = new Menu(dify.getId(), Menu.Type.OPERATION, "difyChatUpdate", null, "difyChat修改", null, true, false, 1, "dify:chat:update", ""); + Menu difyChatStop = new Menu(dify.getId(), Menu.Type.OPERATION, "difyChatStop", null, "difyChat停止", null, true, false, 1, "dify:chat:stop", ""); + Menu difyChatSend = new Menu(dify.getId(), Menu.Type.OPERATION, "difyChatSend", null, "difyChat发送", null, true, false, 1, "dify:chat:send", ""); + Menu difyChatDelete = new Menu(dify.getId(), Menu.Type.OPERATION, "difyChatDelete", null, "difyChat删除", null, true, false, 1, "dify:chat:delete", ""); + Menu difyServerQuery = new Menu(dify.getId(), Menu.Type.OPERATION, "difyServerQuery", null, "difyServer查询", null, true, false, 1, "dify:server:query", ""); + Menu difyServerCreate = new Menu(dify.getId(), Menu.Type.OPERATION, "difyServerCreate", null, "difyServer新增", null, true, false, 1, "dify:server:create", ""); + Menu difyServerUpdate = new Menu(dify.getId(), Menu.Type.OPERATION, "difyServerUpdate", null, "difyServer修改", null, true, false, 1, "dify:server:update", ""); + Menu difyServerInit = new Menu(dify.getId(), Menu.Type.OPERATION, "difyServerInit", null, "difyServer初始化", null, true, false, 1, "dify:server:init", ""); + Menu difyServerDelete = new Menu(dify.getId(), Menu.Type.OPERATION, "difyServerDelete", null, "difyServer删除", null, true, false, 1, "dify:server:delete", ""); + Menu difyDataSetQuery = new Menu(dify.getId(), Menu.Type.OPERATION, "difyDataSetQuery", null, "difyDataSet查询", null, true, false, 1, "dify:dataset:query", ""); + Menu difyDataSetCreate = new Menu(dify.getId(), Menu.Type.OPERATION, "difyDataSetCreate", null, "difyDataSet新增", null, true, false, 1, "dify:dataset:create", ""); + Menu difyDataSetUpdate = new Menu(dify.getId(), Menu.Type.OPERATION, "difyDataSetUpdate", null, "difyDataSet修改", null, true, false, 1, "dify:dataset:update", ""); + Menu difyDataSetRetrieve = new Menu(dify.getId(), Menu.Type.OPERATION, "difyDataSetRetrieve", null, "difyDataSet检索", null, true, false, 1, "dify:dataset:retrieve", ""); + Menu difyDataSetDelete = new Menu(dify.getId(), Menu.Type.OPERATION, "difyDataSetDelete", null, "difyDataSet删除", null, true, false, 1, "dify:dataset:delete", ""); + Menu difyWorkFlowQuery = new Menu(dify.getId(), Menu.Type.OPERATION, "difyWorkFlowQuery", null, "difyWorkFlow查询", null, true, false, 1, "dify:workflow:query", ""); + Menu difyWorkFlowCreate = new Menu(dify.getId(), Menu.Type.OPERATION, "difyWorkFlowCreate", null, "difyWorkFlow新增", null, true, false, 1, "dify:workflow:create", ""); + Menu difyWorkFlowUpdate = new Menu(dify.getId(), Menu.Type.OPERATION, "difyWorkFlowUpdate", null, "difyWorkFlow修改", null, true, false, 1, "dify:workflow:update", ""); + Menu difyWorkFlowInfo = new Menu(dify.getId(), Menu.Type.OPERATION, "difyWorkFlowInfo", null, "difyWorkFlow信息", null, true, false, 1, "dify:workflow:info", ""); + Menu difyWorkFlowLog = new Menu(dify.getId(), Menu.Type.OPERATION, "difyWorkFlowLog", null, "difyWorkFlow日志", null, true, false, 1, "dify:workflow:log", ""); + Menu difyWorkFlowRun = new Menu(dify.getId(), Menu.Type.OPERATION, "difyWorkFlowRun", null, "difyWorkFlow运行", null, true, false, 1, "dify:workflow:run", ""); + Menu difyWorkFlowDelete = new Menu(dify.getId(), Menu.Type.OPERATION, "difyWorkFlowDelete", null, "difyWorkFlow删除", null, true, false, 1, "dify:workflow:delete", ""); menuService.saveBatch(List.of(roleCreate, roleDelete, roleUpdate, roleQuery, deptSave, deptUpdate, deptQuery, deptDelete, userSave, userUpdate, userQuery, userDelete, @@ -94,10 +101,10 @@ class MenuServiceImplTest { noticeCreate, noticeUpdate, noticeQuery, noticeDelete, bulletinCreate, bulletinUpdate, bulletinQuery, bulletinDelete, operationLogQuery, operationLogDelete, - difyChatQuery, difyChatCreate, difyChatUpdate, difyChatDelete, - difyServerQuery, difyServerCreate, difyServerUpdate, difyServerDelete, - difyDataSetQuery, difyDataSetCreate, difyDataSetUpdate, difyDataSetDelete, - difyWorkFlowQuery, difyWorkFlowCreate, difyWorkFlowUpdate, difyWorkFlowDelete + difyChatQuery, difyChatCreate, difyChatUpdate, difyChatDelete,difyChatSend,difyChatStop, + difyServerQuery, difyServerCreate, difyServerUpdate, difyServerDelete,difyServerInit, + difyDataSetQuery, difyDataSetCreate, difyDataSetUpdate, difyDataSetDelete,difyDataSetRetrieve, + difyWorkFlowQuery, difyWorkFlowCreate, difyWorkFlowUpdate, difyWorkFlowDelete, difyWorkFlowInfo,difyWorkFlowLog,difyWorkFlowRun )); }