feat(management): handler + authorization for TemplateFolder commands
This commit is contained in:
@@ -110,7 +110,10 @@ public class ManagementActor : ReceiveActor
|
||||
or CreateSharedScriptCommand or UpdateSharedScriptCommand or DeleteSharedScriptCommand
|
||||
or CreateDatabaseConnectionDefCommand or UpdateDatabaseConnectionDefCommand or DeleteDatabaseConnectionDefCommand
|
||||
or CreateApiMethodCommand or UpdateApiMethodCommand or DeleteApiMethodCommand
|
||||
or UpdateAreaCommand => "Design",
|
||||
or UpdateAreaCommand
|
||||
or CreateTemplateFolderCommand or RenameTemplateFolderCommand
|
||||
or MoveTemplateFolderCommand or DeleteTemplateFolderCommand
|
||||
or MoveTemplateToFolderCommand => "Design",
|
||||
|
||||
// Deployment operations
|
||||
CreateInstanceCommand or MgmtDeployInstanceCommand or MgmtEnableInstanceCommand
|
||||
@@ -150,6 +153,14 @@ public class ManagementActor : ReceiveActor
|
||||
AddTemplateCompositionCommand cmd => await HandleAddComposition(sp, cmd, user.Username),
|
||||
DeleteTemplateCompositionCommand cmd => await HandleDeleteComposition(sp, cmd, user.Username),
|
||||
|
||||
// Template folders
|
||||
ListTemplateFoldersCommand => await HandleListTemplateFolders(sp),
|
||||
CreateTemplateFolderCommand cmd => await HandleCreateTemplateFolder(sp, cmd, user.Username),
|
||||
RenameTemplateFolderCommand cmd => await HandleRenameTemplateFolder(sp, cmd, user.Username),
|
||||
MoveTemplateFolderCommand cmd => await HandleMoveTemplateFolder(sp, cmd, user.Username),
|
||||
DeleteTemplateFolderCommand cmd => await HandleDeleteTemplateFolder(sp, cmd, user.Username),
|
||||
MoveTemplateToFolderCommand cmd => await HandleMoveTemplateToFolder(sp, cmd, user.Username),
|
||||
|
||||
// Instances
|
||||
ListInstancesCommand cmd => await HandleListInstances(sp, cmd, user),
|
||||
GetInstanceCommand cmd => await HandleGetInstance(sp, cmd),
|
||||
@@ -430,6 +441,51 @@ public class ManagementActor : ReceiveActor
|
||||
return validationResult;
|
||||
}
|
||||
|
||||
// ========================================================================
|
||||
// Template folder handlers
|
||||
// ========================================================================
|
||||
|
||||
private static async Task<object?> HandleListTemplateFolders(IServiceProvider sp)
|
||||
{
|
||||
var repo = sp.GetRequiredService<ITemplateEngineRepository>();
|
||||
return await repo.GetAllFoldersAsync();
|
||||
}
|
||||
|
||||
private static async Task<object?> HandleCreateTemplateFolder(IServiceProvider sp, CreateTemplateFolderCommand cmd, string user)
|
||||
{
|
||||
var svc = sp.GetRequiredService<TemplateFolderService>();
|
||||
var result = await svc.CreateFolderAsync(cmd.Name, cmd.ParentFolderId, user);
|
||||
return result.IsSuccess ? result.Value : throw new InvalidOperationException(result.Error);
|
||||
}
|
||||
|
||||
private static async Task<object?> HandleRenameTemplateFolder(IServiceProvider sp, RenameTemplateFolderCommand cmd, string user)
|
||||
{
|
||||
var svc = sp.GetRequiredService<TemplateFolderService>();
|
||||
var result = await svc.RenameFolderAsync(cmd.FolderId, cmd.NewName, user);
|
||||
return result.IsSuccess ? result.Value : throw new InvalidOperationException(result.Error);
|
||||
}
|
||||
|
||||
private static async Task<object?> HandleMoveTemplateFolder(IServiceProvider sp, MoveTemplateFolderCommand cmd, string user)
|
||||
{
|
||||
var svc = sp.GetRequiredService<TemplateFolderService>();
|
||||
var result = await svc.MoveFolderAsync(cmd.FolderId, cmd.NewParentFolderId, user);
|
||||
return result.IsSuccess ? result.Value : throw new InvalidOperationException(result.Error);
|
||||
}
|
||||
|
||||
private static async Task<object?> HandleDeleteTemplateFolder(IServiceProvider sp, DeleteTemplateFolderCommand cmd, string user)
|
||||
{
|
||||
var svc = sp.GetRequiredService<TemplateFolderService>();
|
||||
var result = await svc.DeleteFolderAsync(cmd.FolderId, user);
|
||||
return result.IsSuccess ? result.Value : throw new InvalidOperationException(result.Error);
|
||||
}
|
||||
|
||||
private static async Task<object?> HandleMoveTemplateToFolder(IServiceProvider sp, MoveTemplateToFolderCommand cmd, string user)
|
||||
{
|
||||
var svc = sp.GetRequiredService<TemplateService>();
|
||||
var result = await svc.MoveTemplateAsync(cmd.TemplateId, cmd.NewFolderId, user);
|
||||
return result.IsSuccess ? result.Value : throw new InvalidOperationException(result.Error);
|
||||
}
|
||||
|
||||
// ========================================================================
|
||||
// Instance handlers
|
||||
// ========================================================================
|
||||
|
||||
Reference in New Issue
Block a user