private PowerShellResults <ManagementScopeRow> GetManagementScope(string managementScope, PowerShellResults <AdminRoleGroupRow> results) { PowerShellResults <ManagementScopeRow> result = null; if (!string.IsNullOrEmpty(managementScope) && !ManagementScopeRow.IsDefaultScope(managementScope)) { ManagementScopes managementScopes = new ManagementScopes(); Identity identity = new Identity(managementScope, managementScope); result = results.MergeErrors <ManagementScopeRow>(managementScopes.GetObject(identity)); } return(result); }
public PowerShellResults <AdminRoleGroupRow> NewObject(NewAdminRoleGroupParameter properties) { properties.FaultIfNull(); PowerShellResults <AdminRoleGroupRow> powerShellResults = new PowerShellResults <AdminRoleGroupRow>(); if (properties.IsScopeModified) { if (properties.IsOrganizationalUnit) { if (string.IsNullOrEmpty(properties.ManagementScopeId)) { throw new FaultException(Strings.InvalidOrganizationalUnit(properties.ManagementScopeId)); } OrganizationalUnits organizationalUnits = new OrganizationalUnits(); Identity identity = new Identity(properties.ManagementScopeId, properties.ManagementScopeId); PowerShellResults <ExtendedOrganizationalUnit> powerShellResults2 = powerShellResults.MergeErrors <ExtendedOrganizationalUnit>(organizationalUnits.GetObject(identity)); if (powerShellResults.Failed) { return(powerShellResults); } ExtendedOrganizationalUnit value = powerShellResults2.Value; properties.RecipientOrganizationalUnitScope = new Identity(value.Id, value.Name); } else { PowerShellResults <ManagementScopeRow> managementScope = this.GetManagementScope(properties.ManagementScopeId, powerShellResults); if (powerShellResults.Failed) { return(powerShellResults); } if (managementScope != null && managementScope.SucceededWithValue) { ManagementScopeRow value2 = managementScope.Value; if (value2.ScopeRestrictionType == ScopeRestrictionType.RecipientScope) { properties.RecipientWriteScope = value2.Identity; } else if (value2.ScopeRestrictionType == ScopeRestrictionType.ServerScope) { properties.ConfigWriteScope = value2.Identity; } } } } powerShellResults = base.NewObject <AdminRoleGroupRow, NewAdminRoleGroupParameter>("New-RoleGroup", properties); if (powerShellResults.Succeeded && powerShellResults.HasWarnings) { powerShellResults.Warnings = null; } return(powerShellResults); }
private PowerShellResults <AdminRoleGroupRow> UpdateRoleAssignments(Delta <Identity> delta, Identity identity, SetAdminRoleGroupParameter properties, PowerShellResults <AdminRoleGroupRow> results) { ManagementScopeRow managementScopeRow = properties.ManagementScopeRow; ManagementRoleAssignments roleAssignmentsWebService = new ManagementRoleAssignments(); results = this.SetRoleAssignments(delta.UnchangedObjects, roleAssignmentsWebService, identity, managementScopeRow, properties.OrganizationalUnitRow, results); if (results.Failed) { return(results); } results = this.AddRoleAssignments(delta.AddedObjects, roleAssignmentsWebService, identity, managementScopeRow, properties.OrganizationalUnitRow, results); if (results.Failed) { return(results); } results = this.RemoveRoleAssignments(delta.RemovedObjects, roleAssignmentsWebService, identity, results); if (results.Failed) { 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); }
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 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); }