<?php
/**
 * Demo Oracle — TDE et portefeuilles (section « dash/tde_wallets »).
 *
 * Portage de modules/oracle/_report_dash_tde_wallets.php. La lecture est
 * complete : portefeuilles par instance, parametres TDE, tablespaces chiffres,
 * cles maitresses.
 *
 * UNE action existe dans le module complet, et elle n'est pas reprise :
 * l'activation de l'auto-login d'un portefeuille (createAutoLogin, qui execute
 * un ADMINISTER KEY MANAGEMENT). Le bouton reste affiche, desactive ; la
 * fenetre de saisie du mot de passe et le JavaScript qui postait ont ete
 * retires, et DemoOracleDashTdeWalletsRepository ne porte plus la methode.
 *
 * Inclus par report.php. Variables : $oraDb, $db, $currentUser, $settings.
 */

require_once __DIR__ . '/lib/DemoOracleOciConnect.php';
require_once __DIR__ . '/lib/DemoOracleDashTdeWalletsRepository.php';

/** @var array      $oraDb       */
/** @var Database   $db          */
/** @var array|null $currentUser */

$ociError   = null;
$fetchError = null;
$conn       = demo_oracle_oci_open($oraDb, $db, $ociError, '', 'dash/tde_wallets');
$wallets    = [];
$tdeParams  = [];
$encTs      = [];
$keys       = [];

if (!$conn) {
    $fetchError = $ociError
        ? ('ORA-' . $ociError['code'] . ': ' . $ociError['message'])
        : t('demo_oracle.connect_error');
} else {
    $wallets   = DemoOracleDashTdeWalletsRepository::fetchWallets($conn);
    $tdeParams = DemoOracleDashTdeWalletsRepository::fetchTdeParams($conn);
    $encTs     = DemoOracleDashTdeWalletsRepository::fetchEncryptedTablespaces($conn);
    $keys      = DemoOracleDashTdeWalletsRepository::fetchMasterKeysSummary($conn);

    oci_close($conn);
}

View::display(__DIR__ . '/views/report/dash_tde_wallets.php', [
    'fetchError' => $fetchError,
    'wallets'    => $wallets,
    'tdeParams'  => $tdeParams,
    'encTs'      => $encTs,
    'keys'       => $keys,
    'oraDb'      => $oraDb,
]);
