feat(saas): implement marketplace and tenant onboarding
This commit is contained in:
@@ -6,6 +6,7 @@ using Microsoft.EntityFrameworkCore.Storage;
|
||||
using Tiku.Application.Security;
|
||||
using Tiku.Domain.Identity;
|
||||
using Tiku.Domain.Operations;
|
||||
using Tiku.Domain.Platform;
|
||||
using Tiku.Infrastructure.Persistence;
|
||||
|
||||
namespace Tiku.Infrastructure.Bootstrap;
|
||||
@@ -100,6 +101,22 @@ public sealed class PlatformAdminBootstrapper(
|
||||
dbContext.PlatformBackendRoles.Add(role);
|
||||
|
||||
var platformPermissionCodes = BackendPermissions.Platform.ToArray();
|
||||
var platformModuleCodes = platformPermissionCodes
|
||||
.Select(PermissionModuleCatalog.ResolvePermissionModuleCode)
|
||||
.Distinct(StringComparer.Ordinal)
|
||||
.ToArray();
|
||||
var existingModuleCodes = await dbContext.PermissionModules
|
||||
.Where(module => platformModuleCodes.Contains(module.Code))
|
||||
.Select(module => module.Code)
|
||||
.ToArrayAsync(cancellationToken);
|
||||
dbContext.PermissionModules.AddRange(platformModuleCodes
|
||||
.Except(existingModuleCodes, StringComparer.Ordinal)
|
||||
.Select(code => new PermissionModule
|
||||
{
|
||||
Code = code,
|
||||
Name = code,
|
||||
Area = BackendPermissionArea.Platform
|
||||
}));
|
||||
var existingPermissionCodes = await dbContext.BackendPermissions
|
||||
.Where(permission => platformPermissionCodes.Contains(permission.Code))
|
||||
.Select(permission => permission.Code)
|
||||
@@ -111,7 +128,7 @@ public sealed class PlatformAdminBootstrapper(
|
||||
Code = permissionCode,
|
||||
Name = permissionCode,
|
||||
Area = BackendPermissionArea.Platform,
|
||||
Module = "platform",
|
||||
PermissionModuleCode = PermissionModuleCatalog.ResolvePermissionModuleCode(permissionCode),
|
||||
Description = "Built-in platform permission.",
|
||||
IsSystem = true
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user