private void SetInheritance(Content content, SetPermissionsRequest request) { if (request.r != null) { throw new InvalidOperationException("Cannot use 'r' and 'inheritance' parameters at the same time."); } switch (request.inheritance.ToLower()) { default: throw new ArgumentException("The value of the 'inheritance' must be 'break' or 'unbreak'."); case "break": content.ContentHandler.Security.BreakInheritance(); break; case "unbreak": content.ContentHandler.Security.RemoveBreakInheritance(); break; } }
private void SetPermissions(Content content, SetPermissionsRequest request) { var editor = content.ContentHandler.Security.GetAclEditor(); foreach (var permReq in request.r) { var member = LoadMember(permReq.identity); var propagates = permReq.propagates.HasValue ? permReq.propagates.Value : true; if (permReq.See != null) { editor.SetPermission(member, propagates, PermissionType.See, GetPermissionValue(permReq.See)); } if (permReq.Open != null) { editor.SetPermission(member, propagates, PermissionType.Open, GetPermissionValue(permReq.Open)); } if (permReq.OpenMinor != null) { editor.SetPermission(member, propagates, PermissionType.OpenMinor, GetPermissionValue(permReq.OpenMinor)); } if (permReq.Save != null) { editor.SetPermission(member, propagates, PermissionType.Save, GetPermissionValue(permReq.Save)); } if (permReq.Publish != null) { editor.SetPermission(member, propagates, PermissionType.Publish, GetPermissionValue(permReq.Publish)); } if (permReq.ForceCheckin != null) { editor.SetPermission(member, propagates, PermissionType.ForceCheckin, GetPermissionValue(permReq.ForceCheckin)); } if (permReq.AddNew != null) { editor.SetPermission(member, propagates, PermissionType.AddNew, GetPermissionValue(permReq.AddNew)); } if (permReq.Approve != null) { editor.SetPermission(member, propagates, PermissionType.Approve, GetPermissionValue(permReq.Approve)); } if (permReq.Delete != null) { editor.SetPermission(member, propagates, PermissionType.Delete, GetPermissionValue(permReq.Delete)); } if (permReq.RecallOldVersion != null) { editor.SetPermission(member, propagates, PermissionType.RecallOldVersion, GetPermissionValue(permReq.RecallOldVersion)); } if (permReq.DeleteOldVersion != null) { editor.SetPermission(member, propagates, PermissionType.DeleteOldVersion, GetPermissionValue(permReq.DeleteOldVersion)); } if (permReq.SeePermissions != null) { editor.SetPermission(member, propagates, PermissionType.SeePermissions, GetPermissionValue(permReq.SeePermissions)); } if (permReq.SetPermissions != null) { editor.SetPermission(member, propagates, PermissionType.SetPermissions, GetPermissionValue(permReq.SetPermissions)); } if (permReq.RunApplication != null) { editor.SetPermission(member, propagates, PermissionType.RunApplication, GetPermissionValue(permReq.RunApplication)); } if (permReq.ManageListsAndWorkspaces != null) { editor.SetPermission(member, propagates, PermissionType.ManageListsAndWorkspaces, GetPermissionValue(permReq.ManageListsAndWorkspaces)); } if (permReq.Preview != null) { editor.SetPermission(member, propagates, PermissionType.Preview, GetPermissionValue(permReq.Preview)); } if (permReq.PreviewWithoutWatermark != null) { editor.SetPermission(member, propagates, PermissionType.PreviewWithoutWatermark, GetPermissionValue(permReq.PreviewWithoutWatermark)); } if (permReq.PreviewWithoutRedaction != null) { editor.SetPermission(member, propagates, PermissionType.PreviewWithoutRedaction, GetPermissionValue(permReq.PreviewWithoutRedaction)); } if (permReq.Custom01 != null) { editor.SetPermission(member, propagates, PermissionType.Custom01, GetPermissionValue(permReq.Custom01)); } if (permReq.Custom02 != null) { editor.SetPermission(member, propagates, PermissionType.Custom02, GetPermissionValue(permReq.Custom02)); } if (permReq.Custom03 != null) { editor.SetPermission(member, propagates, PermissionType.Custom03, GetPermissionValue(permReq.Custom03)); } if (permReq.Custom04 != null) { editor.SetPermission(member, propagates, PermissionType.Custom04, GetPermissionValue(permReq.Custom04)); } if (permReq.Custom05 != null) { editor.SetPermission(member, propagates, PermissionType.Custom05, GetPermissionValue(permReq.Custom05)); } if (permReq.Custom06 != null) { editor.SetPermission(member, propagates, PermissionType.Custom06, GetPermissionValue(permReq.Custom06)); } if (permReq.Custom07 != null) { editor.SetPermission(member, propagates, PermissionType.Custom07, GetPermissionValue(permReq.Custom07)); } if (permReq.Custom08 != null) { editor.SetPermission(member, propagates, PermissionType.Custom08, GetPermissionValue(permReq.Custom08)); } if (permReq.Custom09 != null) { editor.SetPermission(member, propagates, PermissionType.Custom09, GetPermissionValue(permReq.Custom09)); } if (permReq.Custom10 != null) { editor.SetPermission(member, propagates, PermissionType.Custom10, GetPermissionValue(permReq.Custom10)); } if (permReq.Custom11 != null) { editor.SetPermission(member, propagates, PermissionType.Custom11, GetPermissionValue(permReq.Custom11)); } if (permReq.Custom12 != null) { editor.SetPermission(member, propagates, PermissionType.Custom12, GetPermissionValue(permReq.Custom12)); } if (permReq.Custom13 != null) { editor.SetPermission(member, propagates, PermissionType.Custom13, GetPermissionValue(permReq.Custom13)); } if (permReq.Custom14 != null) { editor.SetPermission(member, propagates, PermissionType.Custom14, GetPermissionValue(permReq.Custom14)); } } editor.Apply(); }