public static TargetContentItemPermissionViewModel DecodeGroupId(string groupId) { if (string.IsNullOrEmpty(groupId)) { return(null); } string[] parts = groupId.Split(new[] { ':' }); if (parts.Length > 0) { int id = int.Parse(parts[1]); TargetContentItemPermissionViewModel targetContentItemPermissionViewModel = new TargetContentItemPermissionViewModel { Checked = true }; if (parts[0] == "Team") { targetContentItemPermissionViewModel.TeamId = id; } else { targetContentItemPermissionViewModel.BusinessUnitId = id; } return(targetContentItemPermissionViewModel); } else { return(null); } }
private bool HasAccessToTheContent(IContent content, TargetContentItemPermissionViewModel target) { if (content == null) { return(false); } var contentPermissionPart = content.As <ContentItemPermissionPart>(); if (contentPermissionPart == null) { return(false); } var items = contentPermissionPart.Record.Items; if (items == null || items.Count == 0) { return(false); } if (target.UserId.HasValue) { return(items.Any(c => c.User != null && c.User.Id == target.UserId.Value)); } else if (target.BusinessUnitId.HasValue) { return(items.Any(c => c.BusinessUnit != null && c.BusinessUnit.Id == target.BusinessUnitId.Value)); } else if (target.TeamId.HasValue) { return(items.Any(c => c.Team != null && c.Team.Id == target.TeamId.Value)); } return(true); }