protected override IEnumerable<WindowsGroupPermission> GetGroupPermissions(IPrincipal principal, string resource)
{
var serverPermissions = _securityService.Permissions;
var serverOnlyPermissions = serverPermissions.Where(permission => permission.IsServer || permission.ResourceID==Guid.Empty);
Guid resourceId;
if (Guid.TryParse(resource, out resourceId))
{
if (resourceId == Guid.Empty)
{
return serverOnlyPermissions;
}
var resourcePermissions = serverPermissions.Where(p => p.Matches(resource) && !p.IsServer).ToList();
if (resourcePermissions.Any())
{
return resourcePermissions;
}
}
return serverOnlyPermissions;
}