add support for API permissions at the UI layer - including ability to delegate user, role, profile management
This commit is contained in:
@ -308,43 +308,45 @@ namespace Oqtane.Infrastructure
|
||||
|
||||
private void Upgrade_3_3_0(Tenant tenant, IServiceScope scope)
|
||||
{
|
||||
var pageTemplates = new List<PageTemplate>();
|
||||
|
||||
pageTemplates.Add(new PageTemplate
|
||||
try
|
||||
{
|
||||
Name = "API Management",
|
||||
Parent = "Admin",
|
||||
Order = 35,
|
||||
Path = "admin/apis",
|
||||
Icon = Icons.CloudDownload,
|
||||
IsNavigation = true,
|
||||
IsPersonalizable = false,
|
||||
PagePermissions = new List<Permission>
|
||||
var roles = scope.ServiceProvider.GetRequiredService<IRoleRepository>();
|
||||
var pages = scope.ServiceProvider.GetRequiredService<IPageRepository>();
|
||||
var modules = scope.ServiceProvider.GetRequiredService<IModuleRepository>();
|
||||
var permissions = scope.ServiceProvider.GetRequiredService<IPermissionRepository>();
|
||||
var siteRepository = scope.ServiceProvider.GetRequiredService<ISiteRepository>();
|
||||
foreach (Site site in siteRepository.GetSites().ToList())
|
||||
{
|
||||
new Permission(PermissionNames.View, RoleNames.Admin, true),
|
||||
new Permission(PermissionNames.Edit, RoleNames.Admin, true)
|
||||
}.EncodePermissions(),
|
||||
PageTemplateModules = new List<PageTemplateModule>
|
||||
{
|
||||
new PageTemplateModule
|
||||
int roleid = roles.GetRoles(site.SiteId).FirstOrDefault(item => item.Name == RoleNames.Registered).RoleId;
|
||||
|
||||
int pageid = pages.GetPages(site.SiteId).FirstOrDefault(item => item.Path == "admin").PageId;
|
||||
var permission = new Permission
|
||||
{
|
||||
ModuleDefinitionName = typeof(Oqtane.Modules.Admin.Visitors.Index).ToModuleDefinitionName(), Title = "Visitor Management", Pane = PaneNames.Default,
|
||||
ModulePermissions = new List<Permission>
|
||||
{
|
||||
new Permission(PermissionNames.View, RoleNames.Admin, true),
|
||||
new Permission(PermissionNames.Edit, RoleNames.Admin, true)
|
||||
}.EncodePermissions(),
|
||||
Content = ""
|
||||
}
|
||||
SiteId = site.SiteId,
|
||||
EntityName = EntityNames.Page,
|
||||
EntityId = pageid,
|
||||
PermissionName = PermissionNames.View,
|
||||
RoleId = roleid,
|
||||
IsAuthorized = true
|
||||
};
|
||||
permissions.AddPermission(permission);
|
||||
|
||||
int moduleid = modules.GetModules(site.SiteId).FirstOrDefault(item => item.ModuleDefinitionName == "Oqtane.Modules.Admin.Dashboard, Oqtane.Client").ModuleId;
|
||||
permission = new Permission
|
||||
{
|
||||
SiteId = site.SiteId,
|
||||
EntityName = EntityNames.Module,
|
||||
EntityId = moduleid,
|
||||
PermissionName = PermissionNames.View,
|
||||
RoleId = roleid,
|
||||
IsAuthorized = true
|
||||
};
|
||||
permissions.AddPermission(permission);
|
||||
}
|
||||
});
|
||||
|
||||
var pages = scope.ServiceProvider.GetRequiredService<IPageRepository>();
|
||||
|
||||
var sites = scope.ServiceProvider.GetRequiredService<ISiteRepository>();
|
||||
foreach (Site site in sites.GetSites().ToList())
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
sites.CreatePages(site, pageTemplates);
|
||||
Debug.WriteLine($"Oqtane Error: Error In 3.3.0 Upgrade Logic - {ex}");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user