Exemple #1
0
 internal static void CalculateRoleConfigurationForCurrentSKU(OrganizationIdParameter organization, ServicePlan servicePlanSettings, out RoleDefinition[] roles, out RoleNameMappingCollection nameMapping, out string[] rolesToRemove, out RoleEntry[] allAllowedRoleEntriesForSKU)
 {
     if (InstallCannedRbacRoles.isFfoEnvironment)
     {
         roles         = InstallCannedRbacRoles.MergeRoleDefinitions(CannedEOPRoles_Datacenter.Definition, CannedWebServiceRoles_Datacenter.Definition);
         roles         = InstallCannedRbacRoles.MergeRoleDefinitions(roles, CannedUCCRoles_Datacenter.Definition);
         nameMapping   = InstallCannedRbacObjectsTaskBase.RoleNameMappingDatacenterR4;
         rolesToRemove = InstallCannedRbacObjectsTaskBase.ObsoleteRoleNamesDatacenter;
         allAllowedRoleEntriesForSKU = InstallCannedRbacRoles.MergeRoleEntries(AvailableEOPRoleEntries_Datacenter.RoleEntries, AvailableWebServiceRoleEntries_Datacenter.RoleEntries, AvailableUCCRoleEntries_Datacenter.RoleEntries);
         return;
     }
     if (organization == null)
     {
         if (Datacenter.IsMicrosoftHostedOnly(false))
         {
             roles         = InstallCannedRbacRoles.MergeRoleDefinitions(CannedRoles_Datacenter.Definition, CannedWebServiceRoles_Datacenter.Definition);
             nameMapping   = InstallCannedRbacObjectsTaskBase.RoleNameMappingDatacenterR4;
             rolesToRemove = InstallCannedRbacObjectsTaskBase.ObsoleteRoleNamesDatacenter;
             allAllowedRoleEntriesForSKU = InstallCannedRbacRoles.MergeRoleEntries(AvailableRoleEntries_Datacenter.RoleEntries, AvailableWebServiceRoleEntries_Datacenter.RoleEntries, null);
             return;
         }
         if (Datacenter.IsPartnerHostedOnly(false))
         {
             roles         = InstallCannedRbacRoles.MergeRoleDefinitions(CannedRoles_Hosting.Definition, CannedWebServiceRoles_Hosting.Definition);
             nameMapping   = InstallCannedRbacObjectsTaskBase.RoleNameMappingHostingR4;
             rolesToRemove = InstallCannedRbacObjectsTaskBase.ObsoleteRoleNamesHosting;
             allAllowedRoleEntriesForSKU = InstallCannedRbacRoles.MergeRoleEntries(AvailableRoleEntries_Hosting.RoleEntries, AvailableWebServiceRoleEntries_Hosting.RoleEntries, null);
             return;
         }
         if (Datacenter.IsDatacenterDedicated(false))
         {
             roles         = InstallCannedRbacRoles.MergeRoleDefinitions(CannedRoles_Dedicated.Definition, CannedWebServiceRoles_Dedicated.Definition);
             nameMapping   = InstallCannedRbacObjectsTaskBase.RoleNameMappingEnterpriseR4;
             rolesToRemove = InstallCannedRbacObjectsTaskBase.ObsoleteRoleNamesEnterprise;
             allAllowedRoleEntriesForSKU = InstallCannedRbacRoles.MergeRoleEntries(AvailableRoleEntries_Dedicated.RoleEntries, AvailableWebServiceRoleEntries_Dedicated.RoleEntries, null);
             return;
         }
         roles         = InstallCannedRbacRoles.MergeRoleDefinitions(CannedRoles_Enterprise.Definition, CannedWebServiceRoles_Enterprise.Definition);
         nameMapping   = InstallCannedRbacObjectsTaskBase.RoleNameMappingEnterpriseR4;
         rolesToRemove = InstallCannedRbacObjectsTaskBase.ObsoleteRoleNamesEnterprise;
         allAllowedRoleEntriesForSKU = InstallCannedRbacRoles.MergeRoleEntries(AvailableRoleEntries_Enterprise.RoleEntries, AvailableWebServiceRoleEntries_Enterprise.RoleEntries, null);
         return;
     }
     else
     {
         if (Datacenter.IsPartnerHostedOnly(false))
         {
             roles         = InstallCannedRbacRoles.MergeRoleDefinitions(CannedRoles_HostedTenant.Definition, CannedWebServiceRoles_HostedTenant.Definition);
             rolesToRemove = InstallCannedRbacObjectsTaskBase.ObsoleteRoleNamesHostedTenant;
             if (servicePlanSettings != null)
             {
                 List <string>          enabledRoleGroupRoleAssignmentFeatures = servicePlanSettings.Organization.GetEnabledRoleGroupRoleAssignmentFeatures();
                 RoleGroupRoleMapping[] definition = HostedTenant_RoleGroupDefinition.Definition;
                 List <string>          a;
                 roles         = InstallCannedRbacRoles.FilterOrgRolesByRoleGroupFilters(roles, enabledRoleGroupRoleAssignmentFeatures, definition, out a);
                 rolesToRemove = InstallCannedRbacRoles.AppendIListToarray <string>(rolesToRemove, a);
             }
             nameMapping = InstallCannedRbacObjectsTaskBase.RoleNameMappingHostedTenantR4;
             allAllowedRoleEntriesForSKU = InstallCannedRbacRoles.MergeRoleEntries(AvailableRoleEntries_HostedTenant.RoleEntries, AvailableWebServiceRoleEntries_HostedTenant.RoleEntries, null);
             return;
         }
         roles         = InstallCannedRbacRoles.MergeRoleDefinitions(CannedRoles_Tenant.Definition, CannedWebServiceRoles_Tenant.Definition);
         rolesToRemove = InstallCannedRbacObjectsTaskBase.ObsoleteRoleNamesTenant;
         if (servicePlanSettings != null)
         {
             List <string>          enabledRoleGroupRoleAssignmentFeatures2 = servicePlanSettings.Organization.GetEnabledRoleGroupRoleAssignmentFeatures();
             RoleGroupRoleMapping[] definition2 = Tenant_RoleGroupDefinition.Definition;
             List <string>          a2;
             roles         = InstallCannedRbacRoles.FilterOrgRolesByRoleGroupFilters(roles, enabledRoleGroupRoleAssignmentFeatures2, definition2, out a2);
             rolesToRemove = InstallCannedRbacRoles.AppendIListToarray <string>(rolesToRemove, a2);
         }
         nameMapping = InstallCannedRbacObjectsTaskBase.RoleNameMappingTenantR4;
         allAllowedRoleEntriesForSKU = InstallCannedRbacRoles.MergeRoleEntries(AvailableRoleEntries_Tenant.RoleEntries, AvailableWebServiceRoleEntries_Tenant.RoleEntries, null);
         return;
     }
 }