createTenantSsoService(); $values = $values ?? []; $formId = $formId ?? 'tenant-form'; $detailsOpenAll = $detailsOpenAll ?? false; $isReadOnly = $isReadOnly ?? false; $showDangerZone = (bool) ($showDangerZone ?? false); $dangerZoneDeleteFormId = (string) ($dangerZoneDeleteFormId ?? ''); $dangerZoneWarning = (string) ($dangerZoneWarning ?? t('This action cannot be undone.')); $dangerZoneActionLabel = (string) ($dangerZoneActionLabel ?? t('Delete')); $showCustomFieldsTab = (bool) ($showCustomFieldsTab ?? false); $showSsoTab = (bool) ($showSsoTab ?? false); $customFieldTenantUuid = trim((string) ($customFieldTenantUuid ?? '')); $customFieldDefinitions = is_array($customFieldDefinitions ?? null) ? $customFieldDefinitions : []; $readonlyAttr = $isReadOnly ? 'readonly' : ''; $disabledAttr = $isReadOnly ? 'disabled' : ''; $themes = appThemes(); $primaryColor = (string) ($values['primary_color'] ?? ''); $defaultPrimaryColor = appSetting('app_primary_color') ?? '#2fa4a4'; $useDefaultPrimaryColor = $primaryColor === ''; $tenantDefaultTheme = strtolower(trim((string) ($values['default_theme'] ?? ''))); if ($tenantDefaultTheme !== '' && !isset($themes[$tenantDefaultTheme])) { $tenantDefaultTheme = ''; } $rawAllowUserThemeMode = $values['allow_user_theme_mode'] ?? ($values['allow_user_theme'] ?? null); if ($rawAllowUserThemeMode === null || $rawAllowUserThemeMode === '') { $tenantAllowUserThemeMode = ''; } elseif (in_array(strtolower((string) $rawAllowUserThemeMode), ['1', 'true', 'yes', 'on'], true)) { $tenantAllowUserThemeMode = '1'; } else { $tenantAllowUserThemeMode = '0'; } $microsoftEnabledRaw = $values['microsoft_enabled'] ?? $values['enabled'] ?? false; $microsoftEnabled = in_array(strtolower(trim((string) $microsoftEnabledRaw)), ['1', 'true', 'yes', 'on'], true); $microsoftEnforceRaw = $values['enforce_microsoft_login'] ?? false; $microsoftEnforce = in_array(strtolower(trim((string) $microsoftEnforceRaw)), ['1', 'true', 'yes', 'on'], true); $entraTenantId = strtolower(trim((string) ($values['entra_tenant_id'] ?? ''))); $allowedDomains = trim((string) ($values['allowed_domains'] ?? '')); $useSharedAppRaw = $values['use_shared_app'] ?? 1; $useSharedApp = !in_array(strtolower(trim((string) $useSharedAppRaw)), ['0', 'false', 'no', 'off'], true); $clientIdOverride = trim((string) ($values['client_id_override'] ?? '')); $syncProfileOnLoginRaw = $values['sync_profile_on_login'] ?? false; $syncProfileOnLogin = in_array(strtolower(trim((string) $syncProfileOnLoginRaw)), ['1', 'true', 'yes', 'on'], true); $syncFieldOptions = $tenantSsoService->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' : 'local_and_microsoft')); $ssoCredentialSource = (string) ($ssoUiState['credential_source'] ?? ($useSharedApp ? 'shared' : 'override')); $ssoSyncNeedsGraph = !empty($ssoUiState['sync_needs_graph']); ?>