From 465b7850b7c0403e31df0c6e1a238b11ac1ef327 Mon Sep 17 00:00:00 2001 From: Shaun Walker Date: Wed, 1 Mar 2023 10:05:14 -0500 Subject: [PATCH] Fix #2614 - ability to add module to page --- .../Themes/Controls/Theme/ControlPanel.razor | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/Oqtane.Client/Themes/Controls/Theme/ControlPanel.razor b/Oqtane.Client/Themes/Controls/Theme/ControlPanel.razor index a49527c6..f2c1731d 100644 --- a/Oqtane.Client/Themes/Controls/Theme/ControlPanel.razor +++ b/Oqtane.Client/Themes/Controls/Theme/ControlPanel.razor @@ -396,16 +396,15 @@ if (Visibility == "view") { // 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 { // 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 - permissions.ForEach(item => item.EntityName = EntityNames.Module); - permissions.ForEach(item => item.PermissionName = PermissionNames.View); + // set module edit permissions to page edit permissions + permissions = SetPermissions(permissions, module.SiteId, PermissionNames.Edit, PermissionNames.Edit); module.Permissions = permissions; module = await ModuleService.AddModuleAsync(module); @@ -457,6 +456,15 @@ } } + private List SetPermissions(List 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) { if (_showEditMode)