resolve permission issue
This commit is contained in:
@@ -447,6 +447,7 @@ namespace Oqtane.Repository
|
|||||||
pageTemplate.Version = "*";
|
pageTemplate.Version = "*";
|
||||||
pageTemplate.Path = route.Substring(1);
|
pageTemplate.Path = route.Substring(1);
|
||||||
pageTemplate.Update = false;
|
pageTemplate.Update = false;
|
||||||
|
pageTemplate.PageTemplateModules = new List<PageTemplateModule>();
|
||||||
|
|
||||||
// check for Authorize attributes
|
// check for Authorize attributes
|
||||||
var permissionList = new List<Permission>();
|
var permissionList = new List<Permission>();
|
||||||
@@ -482,29 +483,33 @@ namespace Oqtane.Repository
|
|||||||
// view permission
|
// view permission
|
||||||
permissionList.Add(new Permission(PermissionNames.View, RoleNames.Everyone, true));
|
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))
|
||||||
}
|
|
||||||
if (!permissionList.Any(item => item.PermissionName == PermissionNames.Edit && item.RoleName == RoleNames.Admin))
|
|
||||||
{
|
{
|
||||||
permissionList.Add(new Permission(PermissionNames.Edit, RoleNames.Admin, true));
|
pageTemplate.PermissionList.Add(permission);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
pageTemplate.PermissionList = permissionList;
|
|
||||||
|
|
||||||
// add module instance
|
// add module instance
|
||||||
var pageTemplateModule = new PageTemplateModule();
|
var pageTemplateModule = new PageTemplateModule();
|
||||||
pageTemplateModule.Title = route.Substring(1);
|
pageTemplateModule.Title = route.Substring(1);
|
||||||
pageTemplateModule.PermissionList = permissionList;
|
// assign module permissions
|
||||||
pageTemplate.PageTemplateModules = new List<PageTemplateModule>();
|
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);
|
pageTemplate.PageTemplateModules.Add(pageTemplateModule);
|
||||||
|
|
||||||
// use pagetemplate if not already defined in IModule
|
// if PageTemplates was not already defined in IModule
|
||||||
if (moduledefinition.PageTemplates == null)
|
if (moduledefinition.PageTemplates == null)
|
||||||
{
|
{
|
||||||
moduledefinition.PageTemplates = new List<PageTemplate>();
|
moduledefinition.PageTemplates = new List<PageTemplate> { pageTemplate };
|
||||||
moduledefinition.PageTemplates.Add(pageTemplate);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user