private PowerShellResults <AdminRoleGroupRow> AddRoleAssignments(IEnumerable <Identity> addedRoles, ManagementRoleAssignments roleAssignmentsWebService, Identity identity, ManagementScopeRow scopeRow, ExtendedOrganizationalUnit ouRow, PowerShellResults <AdminRoleGroupRow> results) { if (addedRoles != null) { foreach (Identity identity2 in addedRoles) { NewManagementRoleAssignment newManagementRoleAssignment = new NewManagementRoleAssignment(); newManagementRoleAssignment.Role = identity2; newManagementRoleAssignment.SecurityGroup = identity.RawIdentity; this.SetScopeInfoInParameter(identity2, newManagementRoleAssignment, scopeRow, ouRow, results); if (results.Failed) { return(results); } results.MergeErrors <ManagementRoleAssignment>(roleAssignmentsWebService.NewObject(newManagementRoleAssignment)); } return(results); } return(results); }
private void UpdateRoleAssignments(PowerShellResults <RoleAssignmentPolicy> result, SetRoleAssignmentPolicy properties) { RoleAssignmentPolicy value = result.Value; ManagementRoleAssignments managementRoleAssignments = new ManagementRoleAssignments(); Delta <Identity> delta = value.AssignedEndUserRoles.CalculateDelta(properties.AssignedEndUserRoles); if (delta.RemovedObjects != null && delta.RemovedObjects.Count > 0) { result.MergeErrors(this.RemoveRoleAssignments(delta.RemovedObjects, value, managementRoleAssignments)); if (result.Failed) { return; } } foreach (Identity role in delta.AddedObjects) { result.MergeErrors <ManagementRoleAssignment>(managementRoleAssignments.NewObject(new NewManagementRoleAssignment { Policy = value.Identity, Role = role })); } }