Browse Source

feat(ai): Increase the management permissions for AI tools

pull/1457/head
colin 7 months ago
parent
commit
6a902130e3
  1. 25
      aspnet-core/modules/ai/LINGYUN.Abp.AIManagement.Application.Contracts/LINGYUN/Abp/AIManagement/Permissions/AIManagementPermissionDefinitionProvider.cs
  2. 9
      aspnet-core/modules/ai/LINGYUN.Abp.AIManagement.Application.Contracts/LINGYUN/Abp/AIManagement/Permissions/AIManagementPermissionNames.cs
  3. 11
      aspnet-core/modules/ai/LINGYUN.Abp.AIManagement.Application/LINGYUN/Abp/AIManagement/Tools/AIToolDefinitionAppService.cs
  4. 1
      aspnet-core/modules/ai/LINGYUN.Abp.AIManagement.Domain.Shared/LINGYUN/Abp/AIManagement/Localization/Resources/en.json
  5. 1
      aspnet-core/modules/ai/LINGYUN.Abp.AIManagement.Domain.Shared/LINGYUN/Abp/AIManagement/Localization/Resources/zh-Hans.json
  6. 8
      aspnet-core/modules/ai/LINGYUN.Abp.AIManagement.HttpApi/LINGYUN/Abp/AIManagement/Tools/AIToolDefinitionController.cs

25
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"));

9
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";

11
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<ListResultDto<AIToolProviderDto>> GetAvailableProvidersAsync()

1
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",

1
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": "发送消息",

8
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<AIToolDefinitionRecordDto> 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<AIToolDefinitionRecordDto> UpdateAsync(Guid id, AIToolDefinitionRecordUpdateDto input)
{
return _service.UpdateAsync(id, input);

Loading…
Cancel
Save