fix Control Panel to initialize extended module permissions when module is added or copied
This commit is contained in:
@ -353,7 +353,7 @@
|
|||||||
module.PageId = PageState.Page.PageId;
|
module.PageId = PageState.Page.PageId;
|
||||||
module.ModuleDefinitionName = _moduleDefinitionName;
|
module.ModuleDefinitionName = _moduleDefinitionName;
|
||||||
module.AllPages = false;
|
module.AllPages = false;
|
||||||
module.PermissionList = GenerateDefaultPermissions(module.SiteId);
|
module.PermissionList = GenerateDefaultPermissions(module.SiteId, module.ModuleDefinitionName);
|
||||||
|
|
||||||
module = await ModuleService.AddModuleAsync(module);
|
module = await ModuleService.AddModuleAsync(module);
|
||||||
newModuleId = module.ModuleId;
|
newModuleId = module.ModuleId;
|
||||||
@ -365,7 +365,7 @@
|
|||||||
module.SiteId = PageState.Page.SiteId;
|
module.SiteId = PageState.Page.SiteId;
|
||||||
module.PageId = PageState.Page.PageId;
|
module.PageId = PageState.Page.PageId;
|
||||||
module.AllPages = false;
|
module.AllPages = false;
|
||||||
module.PermissionList = GenerateDefaultPermissions(module.SiteId);
|
module.PermissionList = GenerateDefaultPermissions(module.SiteId, module.ModuleDefinitionName);
|
||||||
|
|
||||||
module = await ModuleService.AddModuleAsync(module);
|
module = await ModuleService.AddModuleAsync(module);
|
||||||
var moduleContent = await ModuleService.ExportModuleAsync(int.Parse(_moduleId), PageState.Page.PageId);
|
var moduleContent = await ModuleService.ExportModuleAsync(int.Parse(_moduleId), PageState.Page.PageId);
|
||||||
@ -430,7 +430,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<Permission> GenerateDefaultPermissions(int siteId)
|
private List<Permission> GenerateDefaultPermissions(int siteId, string moduleDefinitionName)
|
||||||
{
|
{
|
||||||
var permissions = new List<Permission>();
|
var permissions = new List<Permission>();
|
||||||
if (_visibility == "view")
|
if (_visibility == "view")
|
||||||
@ -443,8 +443,22 @@
|
|||||||
// set module view permissions to page edit permissions
|
// set module view permissions to page edit permissions
|
||||||
permissions = SetPermissions(permissions, siteId, PermissionNames.View, PermissionNames.Edit);
|
permissions = SetPermissions(permissions, siteId, PermissionNames.View, PermissionNames.Edit);
|
||||||
}
|
}
|
||||||
// set module edit permissions to page edit permissions
|
|
||||||
permissions = SetPermissions(permissions, siteId, PermissionNames.Edit, PermissionNames.Edit);
|
// get module permissions
|
||||||
|
var permissionNames = $"{PermissionNames.View},{PermissionNames.Edit}";
|
||||||
|
var moduleDefinition = _allModuleDefinitions.FirstOrDefault(item => item.ModuleDefinitionName == moduleDefinitionName);
|
||||||
|
if (moduleDefinition != null && !string.IsNullOrEmpty(moduleDefinition.PermissionNames))
|
||||||
|
{
|
||||||
|
permissionNames = moduleDefinition.PermissionNames;
|
||||||
|
}
|
||||||
|
foreach (var permission in permissionNames.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries))
|
||||||
|
{
|
||||||
|
if (permission != PermissionNames.View)
|
||||||
|
{
|
||||||
|
// set remaining module permissions to page edit permissions
|
||||||
|
permissions = SetPermissions(permissions, siteId, permission, PermissionNames.Edit);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return permissions;
|
return permissions;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user