While trying to configure security for the users of our system, I found that I needed to grant access to the template used for the Data item; which I believe is a Virtual Page Data.
Example: The following applies security changes to the Data folders.
# This is a helper method to simplify the changes.
function New-AccessRuleList {
[CmdletBinding()]
[OutputType("System.Collections.Generic.List[Sitecore.Security.AccessControl.AccessRule]")]
param(
[string]$Identity,
[string[]]$AccessRule,
[Sitecore.Security.AccessControl.PropagationType]$PropagationType,
[Sitecore.Security.AccessControl.SecurityPermission]$SecurityPermission
)
$list = New-Object "System.Collections.Generic.List[Sitecore.Security.AccessControl.AccessRule]"
foreach($rule in $accessrule) {
$list.Add((New-ItemAcl -Identity $Identity -AccessRight $rule -PropagationType $PropagationType -SecurityPermission $SecurityPermission))
}
@(,$list)
}
$allowItemProps = @{
PropagationType = [Sitecore.Security.AccessControl.PropagationType]::Entity
SecurityPermission = [Sitecore.Security.AccessControl.SecurityPermission]::AllowAccess
}
$realEveryone = "\Everyone"
$virtualDataItem = Get-Item -Path "master:" -ID "{9700DC24-8969-4638-ACC3-34D54335829E}"
$accessRules = New-Object Sitecore.Security.AccessControl.AccessRuleCollection
$accessRules.AddRange((New-AccessRuleList -Identity $realEveryone -AccessRule item:create @allowItemProps))
$virtualDataItem | Add-ItemAcl -AccessRules $accessRules
The final results: