profileSyncFieldOptions(); $syncProfileFieldsRaw = $values['sync_profile_fields_list'] ?? ($values['sync_profile_fields'] ?? []); $syncProfileFields = $tenantSsoService->normalizeProfileSyncFields($syncProfileFieldsRaw); $tenantId = (int) ($values['id'] ?? 0); $ssoUiState = is_array($ssoUiState ?? null) ? $ssoUiState : $tenantSsoService->buildMicrosoftUiState($tenantId, $values); $ssoConfigComplete = !empty($ssoUiState['config_complete']); $ssoConfigErrorLabel = trim((string) ($ssoUiState['config_error_label'] ?? '')); $ssoPasswordMode = (string) ($ssoUiState['password_mode'] ?? ($microsoftEnforce ? 'microsoft_only' : ($microsoftEnabled ? 'local_and_microsoft' : 'local_only'))); $ssoCredentialSource = (string) ($ssoUiState['credential_source'] ?? ($useSharedApp ? 'shared' : 'override')); $ssoSyncNeedsGraph = !empty($ssoUiState['sync_needs_graph']); $ssoPasswordModeLabel = match ($ssoPasswordMode) { 'microsoft_only' => t('Microsoft only'), 'local_and_microsoft' => t('Local password + Microsoft'), default => t('Local password only'), }; $ssoCredentialSourceLabel = $ssoCredentialSource === 'shared' ? t('Shared app') : t('Tenant override'); $ssoStatusTiles = [ [ 'label' => t('Microsoft login'), 'value' => $microsoftEnabled ? t('Active') : t('Inactive'), 'tone' => $microsoftEnabled ? 'success' : 'neutral', ], [ 'label' => t('Configuration complete'), 'value' => $ssoConfigComplete ? t('Yes') : t('No'), 'tone' => $ssoConfigComplete ? 'success' : 'warning', ], [ 'label' => t('Password login mode'), 'value' => $ssoPasswordModeLabel, 'tone' => match ($ssoPasswordMode) { 'microsoft_only' => 'warning', 'local_and_microsoft' => 'info', default => 'neutral', }, ], [ 'label' => t('Credentials source'), 'value' => $ssoCredentialSourceLabel, 'tone' => $ssoCredentialSource === 'shared' ? 'info' : 'neutral', ], ]; $allowedDomainsList = preg_split('/[\s,;]+/', strtolower($allowedDomains), -1, PREG_SPLIT_NO_EMPTY); $allowedDomainsList = is_array($allowedDomainsList) ? array_values(array_unique($allowedDomainsList)) : []; $allowedDomainsCount = count($allowedDomainsList); $syncFieldCount = count($syncProfileFields); $ssoSetupBadgeVariant = $microsoftEnabled ? 'success' : 'neutral'; $ssoSetupBadgeLabel = sprintf( '%s: %s', t('Microsoft login'), $microsoftEnabled ? t('Active') : t('Inactive') ); $ssoShowConfigBadge = $microsoftEnabled; $ssoConfigBadgeVariant = $microsoftEnabled ? ($ssoConfigComplete ? 'success' : 'warning') : 'neutral'; $ssoConfigBadgeLabel = sprintf( '%s: %s', t('Configuration status'), $ssoConfigComplete ? t('Complete') : t('Incomplete') ); $ssoPolicyBadgeVariant = match ($ssoPasswordMode) { 'microsoft_only' => 'warning', 'local_and_microsoft' => 'info', default => 'neutral', }; $ssoSyncBadgeVariant = $syncProfileOnLogin ? 'info' : 'neutral'; $ssoSyncBadgeLabel = $syncProfileOnLogin ? t('Active') : t('Inactive'); $ssoDomainsBadgeVariant = $allowedDomainsCount > 0 ? 'info' : 'neutral'; $ssoDomainsBadgeLabel = $allowedDomainsCount > 0 ? sprintf('%d %s', $allowedDomainsCount, t('Allowed email domains')) : t('No domain restrictions'); $ssoCredentialsBadgeVariant = $ssoCredentialSource === 'shared' ? 'info' : 'warning'; $ssoCredentialsBadgeLabel = $ssoCredentialSourceLabel; $openSetupCard = $detailsOpenAll || !$microsoftEnabled || ($microsoftEnabled && !$ssoConfigComplete); $openPolicyCard = $detailsOpenAll || ($microsoftEnabled && $microsoftEnforce); $openAccessCard = $detailsOpenAll || ($microsoftEnabled && ($allowedDomainsCount > 0 || $syncProfileOnLogin)); $openOverrideCard = $detailsOpenAll; ?>