private PowerShellResults <AdminRoleGroupRow> SetRoleAssignments(IEnumerable <Identity> unchangedRoles, ManagementRoleAssignments roleAssignmentsWebService, Identity identity, ManagementScopeRow scopeRow, ExtendedOrganizationalUnit ouRow, PowerShellResults <AdminRoleGroupRow> results) { if ((ouRow != null || scopeRow != null) && unchangedRoles != null) { foreach (Identity roleIdentity in unchangedRoles) { PowerShellResults <ManagementRoleAssignment> roleAssignments = this.GetRoleAssignments(roleIdentity, identity, roleAssignmentsWebService); if (roleAssignments.Failed) { results.MergeErrors <ManagementRoleAssignment>(roleAssignments); return(results); } SetManagementRoleAssignment properties = this.SetScopeInfoInParameter(roleIdentity, null, scopeRow, ouRow, results); if (results.Failed) { return(results); } ManagementRoleAssignment[] output = roleAssignments.Output; foreach (ManagementRoleAssignment managementRoleAssignment in output) { if (managementRoleAssignment.DelegationType == RoleAssignmentDelegationType.Regular) { results.MergeErrors <ManagementRoleAssignment>(roleAssignmentsWebService.SetObject(managementRoleAssignment.Identity, properties)); if (results.Failed) { return(results); } } } } return(results); } return(results); }
private SetManagementRoleAssignment SetScopeInfoInParameter(Identity roleIdentity, SetManagementRoleAssignment param, ManagementScopeRow scopeRow, ExtendedOrganizationalUnit ouRow, PowerShellResults <AdminRoleGroupRow> results) { SetManagementRoleAssignment setManagementRoleAssignment = param; if (setManagementRoleAssignment == null) { setManagementRoleAssignment = new SetManagementRoleAssignment(); } if (ouRow != null || scopeRow != null) { if (scopeRow != null && scopeRow.ScopeRestrictionType == ScopeRestrictionType.ServerScope) { setManagementRoleAssignment.RecipientWriteScope = null; setManagementRoleAssignment.ConfigWriteScope = scopeRow.Identity; } else { if (!Util.IsDataCenter) { if (scopeRow != null && scopeRow.ScopeRestrictionType == ScopeRestrictionType.DatabaseScope) { setManagementRoleAssignment.ConfigWriteScope = scopeRow.Identity; } else { setManagementRoleAssignment.ConfigWriteScope = null; } } if (ouRow != null) { setManagementRoleAssignment.OrganizationalUnit = new Identity(ouRow.Id, ouRow.Name); } else if (scopeRow != null && scopeRow.ScopeRestrictionType == ScopeRestrictionType.RecipientScope) { setManagementRoleAssignment.RecipientWriteScope = scopeRow.Identity; } } } return(setManagementRoleAssignment); }
public PowerShellResults <ManagementRoleAssignment> SetObject(Identity identity, SetManagementRoleAssignment properties) { return(base.SetObject <ManagementRoleAssignment, SetManagementRoleAssignment, ManagementRoleAssignment>("Set-ManagementRoleAssignment", identity, properties)); }