From 6a902130e3dfb5591f475ee3dd9c31286c95bd4c Mon Sep 17 00:00:00 2001 From: colin Date: Fri, 27 Mar 2026 14:23:16 +0800 Subject: [PATCH] feat(ai): Increase the management permissions for AI tools --- ...IManagementPermissionDefinitionProvider.cs | 25 ++++++++++++++++--- .../AIManagementPermissionNames.cs | 9 +++++++ .../Tools/AIToolDefinitionAppService.cs | 11 ++++++++ .../Localization/Resources/en.json | 1 + .../Localization/Resources/zh-Hans.json | 1 + .../Tools/AIToolDefinitionController.cs | 8 +++++- 6 files changed, 50 insertions(+), 5 deletions(-) diff --git a/aspnet-core/modules/ai/LINGYUN.Abp.AIManagement.Application.Contracts/LINGYUN/Abp/AIManagement/Permissions/AIManagementPermissionDefinitionProvider.cs b/aspnet-core/modules/ai/LINGYUN.Abp.AIManagement.Application.Contracts/LINGYUN/Abp/AIManagement/Permissions/AIManagementPermissionDefinitionProvider.cs index 9b1c697f4..3226cf795 100644 --- a/aspnet-core/modules/ai/LINGYUN.Abp.AIManagement.Application.Contracts/LINGYUN/Abp/AIManagement/Permissions/AIManagementPermissionDefinitionProvider.cs +++ b/aspnet-core/modules/ai/LINGYUN.Abp.AIManagement.Application.Contracts/LINGYUN/Abp/AIManagement/Permissions/AIManagementPermissionDefinitionProvider.cs @@ -11,23 +11,40 @@ public class AIManagementPermissionDefinitionProvider : PermissionDefinitionProv { var group = context.AddGroup(AIManagementPermissionNames.GroupName, L("Permission:AIManagement")); - var groupDefinition = group.AddPermission( + var workspaceDefinition = group.AddPermission( AIManagementPermissionNames.WorkspaceDefinition.Default, L("Permission:WorkspaceDefinition"), MultiTenancySides.Host); - groupDefinition.AddChild( + workspaceDefinition.AddChild( AIManagementPermissionNames.WorkspaceDefinition.Create, L("Permission:Create"), MultiTenancySides.Host); - groupDefinition.AddChild( + workspaceDefinition.AddChild( AIManagementPermissionNames.WorkspaceDefinition.Update, L("Permission:Update"), MultiTenancySides.Host); - groupDefinition.AddChild( + workspaceDefinition.AddChild( AIManagementPermissionNames.WorkspaceDefinition.Delete, L("Permission:Delete"), MultiTenancySides.Host); + var aiToolDefinition = group.AddPermission( + AIManagementPermissionNames.AIToolDefinition.Default, + L("Permission:AIToolDefinition"), + MultiTenancySides.Host); + aiToolDefinition.AddChild( + AIManagementPermissionNames.AIToolDefinition.Create, + L("Permission:Create"), + MultiTenancySides.Host); + aiToolDefinition.AddChild( + AIManagementPermissionNames.AIToolDefinition.Update, + L("Permission:Update"), + MultiTenancySides.Host); + aiToolDefinition.AddChild( + AIManagementPermissionNames.AIToolDefinition.Delete, + L("Permission:Delete"), + MultiTenancySides.Host); + var conversation = group.AddPermission( AIManagementPermissionNames.Conversation.Default, L("Permission:Conversation")); diff --git a/aspnet-core/modules/ai/LINGYUN.Abp.AIManagement.Application.Contracts/LINGYUN/Abp/AIManagement/Permissions/AIManagementPermissionNames.cs b/aspnet-core/modules/ai/LINGYUN.Abp.AIManagement.Application.Contracts/LINGYUN/Abp/AIManagement/Permissions/AIManagementPermissionNames.cs index 949d5539d..acde2ea56 100644 --- a/aspnet-core/modules/ai/LINGYUN.Abp.AIManagement.Application.Contracts/LINGYUN/Abp/AIManagement/Permissions/AIManagementPermissionNames.cs +++ b/aspnet-core/modules/ai/LINGYUN.Abp.AIManagement.Application.Contracts/LINGYUN/Abp/AIManagement/Permissions/AIManagementPermissionNames.cs @@ -15,6 +15,15 @@ public static class AIManagementPermissionNames public const string Delete = Default + ".Delete"; } + public static class AIToolDefinition + { + public const string Default = GroupName + ".AIToolDefinitions"; + + public const string Create = Default + ".Create"; + public const string Update = Default + ".Update"; + public const string Delete = Default + ".Delete"; + } + public static class Conversation { public const string Default = GroupName + ".Conversations"; diff --git a/aspnet-core/modules/ai/LINGYUN.Abp.AIManagement.Application/LINGYUN/Abp/AIManagement/Tools/AIToolDefinitionAppService.cs b/aspnet-core/modules/ai/LINGYUN.Abp.AIManagement.Application/LINGYUN/Abp/AIManagement/Tools/AIToolDefinitionAppService.cs index ce8bb4bbd..414082912 100644 --- a/aspnet-core/modules/ai/LINGYUN.Abp.AIManagement.Application/LINGYUN/Abp/AIManagement/Tools/AIToolDefinitionAppService.cs +++ b/aspnet-core/modules/ai/LINGYUN.Abp.AIManagement.Application/LINGYUN/Abp/AIManagement/Tools/AIToolDefinitionAppService.cs @@ -1,4 +1,6 @@ using LINGYUN.Abp.AI.Tools; +using LINGYUN.Abp.AIManagement.Localization; +using LINGYUN.Abp.AIManagement.Permissions; using LINGYUN.Abp.AIManagement.Tools.Dtos; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; @@ -32,6 +34,15 @@ public class AIToolDefinitionAppService : { AIToolsOptions = aiToolsOptions.Value; AIToolDefinitionRecordRepository = repository; + + LocalizationResource = typeof(AIManagementResource); + ObjectMapperContext = typeof(AbpAIManagementApplicationModule); + + CreatePolicyName = AIManagementPermissionNames.AIToolDefinition.Create; + UpdatePolicyName = AIManagementPermissionNames.AIToolDefinition.Update; + DeletePolicyName = AIManagementPermissionNames.AIToolDefinition.Delete; + GetListPolicyName = AIManagementPermissionNames.AIToolDefinition.Default; + GetPolicyName = AIManagementPermissionNames.AIToolDefinition.Default; } public virtual Task> GetAvailableProvidersAsync() diff --git a/aspnet-core/modules/ai/LINGYUN.Abp.AIManagement.Domain.Shared/LINGYUN/Abp/AIManagement/Localization/Resources/en.json b/aspnet-core/modules/ai/LINGYUN.Abp.AIManagement.Domain.Shared/LINGYUN/Abp/AIManagement/Localization/Resources/en.json index e08d881e8..0651e8971 100644 --- a/aspnet-core/modules/ai/LINGYUN.Abp.AIManagement.Domain.Shared/LINGYUN/Abp/AIManagement/Localization/Resources/en.json +++ b/aspnet-core/modules/ai/LINGYUN.Abp.AIManagement.Domain.Shared/LINGYUN/Abp/AIManagement/Localization/Resources/en.json @@ -3,6 +3,7 @@ "texts": { "Permission:AIManagement": "Artificia Intelligence", "Permission:WorkspaceDefinition": "Workspaces", + "Permission:AIToolDefinition": "AI Tools", "Permission:Conversation": "Conversations", "Permission:Chats": "Chats", "Permission:SendMessage": "Send Message", diff --git a/aspnet-core/modules/ai/LINGYUN.Abp.AIManagement.Domain.Shared/LINGYUN/Abp/AIManagement/Localization/Resources/zh-Hans.json b/aspnet-core/modules/ai/LINGYUN.Abp.AIManagement.Domain.Shared/LINGYUN/Abp/AIManagement/Localization/Resources/zh-Hans.json index 0f3f99b3d..c1bf535de 100644 --- a/aspnet-core/modules/ai/LINGYUN.Abp.AIManagement.Domain.Shared/LINGYUN/Abp/AIManagement/Localization/Resources/zh-Hans.json +++ b/aspnet-core/modules/ai/LINGYUN.Abp.AIManagement.Domain.Shared/LINGYUN/Abp/AIManagement/Localization/Resources/zh-Hans.json @@ -3,6 +3,7 @@ "texts": { "Permission:AIManagement": "人工智能", "Permission:WorkspaceDefinition": "工作区管理", + "Permission:AIToolDefinition": "AI工具管理", "Permission:Conversation": "对话管理", "Permission:Chats": "聊天管理", "Permission:SendMessage": "发送消息", diff --git a/aspnet-core/modules/ai/LINGYUN.Abp.AIManagement.HttpApi/LINGYUN/Abp/AIManagement/Tools/AIToolDefinitionController.cs b/aspnet-core/modules/ai/LINGYUN.Abp.AIManagement.HttpApi/LINGYUN/Abp/AIManagement/Tools/AIToolDefinitionController.cs index e2a51f2d4..7b14f7d1c 100644 --- a/aspnet-core/modules/ai/LINGYUN.Abp.AIManagement.HttpApi/LINGYUN/Abp/AIManagement/Tools/AIToolDefinitionController.cs +++ b/aspnet-core/modules/ai/LINGYUN.Abp.AIManagement.HttpApi/LINGYUN/Abp/AIManagement/Tools/AIToolDefinitionController.cs @@ -1,4 +1,6 @@ -using LINGYUN.Abp.AIManagement.Tools.Dtos; +using LINGYUN.Abp.AIManagement.Permissions; +using LINGYUN.Abp.AIManagement.Tools.Dtos; +using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using System; using System.Threading.Tasks; @@ -12,6 +14,7 @@ namespace LINGYUN.Abp.AIManagement.Tools; [RemoteService(Name = AIManagementRemoteServiceConsts.RemoteServiceName)] [Area(AIManagementRemoteServiceConsts.ModuleName)] [Route($"api/{AIManagementRemoteServiceConsts.ModuleName}/tools")] +[Authorize(AIManagementPermissionNames.AIToolDefinition.Default)] public class AIToolDefinitionController : AbpControllerBase, IAIToolDefinitionAppService { private readonly IAIToolDefinitionAppService _service; @@ -21,12 +24,14 @@ public class AIToolDefinitionController : AbpControllerBase, IAIToolDefinitionAp } [HttpPost] + [Authorize(AIManagementPermissionNames.AIToolDefinition.Create)] public virtual Task CreateAsync(AIToolDefinitionRecordCreateDto input) { return _service.CreateAsync(input); } [HttpDelete("{id}")] + [Authorize(AIManagementPermissionNames.AIToolDefinition.Delete)] public virtual Task DeleteAsync(Guid id) { return _service.DeleteAsync(id); @@ -51,6 +56,7 @@ public class AIToolDefinitionController : AbpControllerBase, IAIToolDefinitionAp } [HttpPut("{id}")] + [Authorize(AIManagementPermissionNames.AIToolDefinition.Update)] public virtual Task UpdateAsync(Guid id, AIToolDefinitionRecordUpdateDto input) { return _service.UpdateAsync(id, input);