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)