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.ModuleDefinitionName = _moduleDefinitionName;
|
||||
module.AllPages = false;
|
||||
module.PermissionList = GenerateDefaultPermissions(module.SiteId);
|
||||
module.PermissionList = GenerateDefaultPermissions(module.SiteId, module.ModuleDefinitionName);
|
||||
|
||||
module = await ModuleService.AddModuleAsync(module);
|
||||
newModuleId = module.ModuleId;
|
||||
@ -365,7 +365,7 @@
|
||||
module.SiteId = PageState.Page.SiteId;
|
||||
module.PageId = PageState.Page.PageId;
|
||||
module.AllPages = false;
|
||||
module.PermissionList = GenerateDefaultPermissions(module.SiteId);
|
||||
module.PermissionList = GenerateDefaultPermissions(module.SiteId, module.ModuleDefinitionName);
|
||||
|
||||
module = await ModuleService.AddModuleAsync(module);
|
||||
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>();
|
||||
if (_visibility == "view")
|
||||
@ -443,8 +443,22 @@
|
||||
// set module view permissions to page edit permissions
|
||||
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;
|
||||
}
|
||||
|
Reference in New Issue
Block a user