Fix #2614 - ability to add module to page

This commit is contained in:
Shaun Walker 2023-03-01 10:05:14 -05:00
parent 8605e3ca5a
commit 465b7850b7

View File

@ -396,16 +396,15 @@
if (Visibility == "view") if (Visibility == "view")
{ {
// set module view permissions to page view permissions // set module view permissions to page view permissions
permissions = PageState.Page.Permissions.Where(item => item.PermissionName == PermissionNames.View).ToList(); permissions = SetPermissions(permissions, module.SiteId, PermissionNames.View, PermissionNames.View);
} }
else else
{ {
// set module view permissions to page edit permissions // set module view permissions to page edit permissions
permissions = PageState.Page.Permissions.Where(item => item.PermissionName == PermissionNames.Edit).ToList(); permissions = SetPermissions(permissions, module.SiteId, PermissionNames.View, PermissionNames.Edit);
} }
// set entity name and permission name // set module edit permissions to page edit permissions
permissions.ForEach(item => item.EntityName = EntityNames.Module); permissions = SetPermissions(permissions, module.SiteId, PermissionNames.Edit, PermissionNames.Edit);
permissions.ForEach(item => item.PermissionName = PermissionNames.View);
module.Permissions = permissions; module.Permissions = permissions;
module = await ModuleService.AddModuleAsync(module); module = await ModuleService.AddModuleAsync(module);
@ -457,6 +456,15 @@
} }
} }
private List<Permission> SetPermissions(List<Permission> permissions, int siteId, string modulePermission, string pagePermission)
{
foreach (var permission in PageState.Page.Permissions.Where(item => item.PermissionName == pagePermission))
{
permissions.Add(new Permission { SiteId = siteId, EntityName = EntityNames.Module, PermissionName = modulePermission, RoleId = permission.RoleId, UserId = permission.UserId, IsAuthorized = permission.IsAuthorized });
}
return permissions;
}
private async Task ToggleEditMode(bool EditMode) private async Task ToggleEditMode(bool EditMode)
{ {
if (_showEditMode) if (_showEditMode)