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);
        }
Beispiel #3
0
 public PowerShellResults <ManagementRoleAssignment> SetObject(Identity identity, SetManagementRoleAssignment properties)
 {
     return(base.SetObject <ManagementRoleAssignment, SetManagementRoleAssignment, ManagementRoleAssignment>("Set-ManagementRoleAssignment", identity, properties));
 }