From d3c4e78baa5a8156a9f4eb38d71fbc7f1fc2a919 Mon Sep 17 00:00:00 2001 From: sbwalker Date: Sun, 15 Feb 2026 13:45:45 -0500 Subject: [PATCH] resolve permission issue --- .../Repository/ModuleDefinitionRepository.cs | 31 +++++++++++-------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/Oqtane.Server/Repository/ModuleDefinitionRepository.cs b/Oqtane.Server/Repository/ModuleDefinitionRepository.cs index b845ce88..a43174e9 100644 --- a/Oqtane.Server/Repository/ModuleDefinitionRepository.cs +++ b/Oqtane.Server/Repository/ModuleDefinitionRepository.cs @@ -447,6 +447,7 @@ namespace Oqtane.Repository pageTemplate.Version = "*"; pageTemplate.Path = route.Substring(1); pageTemplate.Update = false; + pageTemplate.PageTemplateModules = new List(); // check for Authorize attributes var permissionList = new List(); @@ -482,29 +483,33 @@ namespace Oqtane.Repository // view permission permissionList.Add(new Permission(PermissionNames.View, RoleNames.Everyone, true)); } - // default permissions - if (!permissionList.Any(item => item.PermissionName == PermissionNames.View && item.RoleName == RoleNames.Admin)) + + // assign page permissions + foreach (var permission in permissionList) { - permissionList.Add(new Permission(PermissionNames.View, RoleNames.Admin, true)); + if (!pageTemplate.PermissionList.Any(item => item.PermissionName == permission.PermissionName && item.RoleName == permission.RoleName)) + { + pageTemplate.PermissionList.Add(permission); + } } - if (!permissionList.Any(item => item.PermissionName == PermissionNames.Edit && item.RoleName == RoleNames.Admin)) - { - permissionList.Add(new Permission(PermissionNames.Edit, RoleNames.Admin, true)); - } - pageTemplate.PermissionList = permissionList; // add module instance var pageTemplateModule = new PageTemplateModule(); pageTemplateModule.Title = route.Substring(1); - pageTemplateModule.PermissionList = permissionList; - pageTemplate.PageTemplateModules = new List(); + // assign module permissions + foreach (var permission in permissionList) + { + if (!pageTemplateModule.PermissionList.Any(item => item.PermissionName == permission.PermissionName && item.RoleName == permission.RoleName)) + { + pageTemplateModule.PermissionList.Add(permission.Clone()); + } + } pageTemplate.PageTemplateModules.Add(pageTemplateModule); - // use pagetemplate if not already defined in IModule + // if PageTemplates was not already defined in IModule if (moduledefinition.PageTemplates == null) { - moduledefinition.PageTemplates = new List(); - moduledefinition.PageTemplates.Add(pageTemplate); + moduledefinition.PageTemplates = new List { pageTemplate }; } } }