<?php

namespace Modules\Connexion\MiddlewareConnexion;

use Helpers\Trad\ITrad;
use Modules\Connexion\Repository\ControleConnexionRepo;
use Skeleton\Renderer\RendererInterface;
use Psr\Container\ContainerInterfclass;

class SSOInterne extends AbsConnexion implements InterfaceConnexion
{
    public function __construct(public \PDO $pdo, public ITrad $trad)
    {
        $this->typeConnexion = 'SSOINTERNE';
        unset($_SESSION['user_logged']);
    }

    public function setLogin(?string $login = null):void
    {
        $this->login = $login;
    }

    public function setError(string|null $error = '') : void
    {
        if ($error) {
            $this->error[] = $this->trad->t("Vous n'êtes pas autorisé à vous connecter en SSO dans l'application. Contactez votre administrateur.");
        }
    }

    public function authentification(array $post = []):void
    {
        if (!$this->error) {
            $loginTry = (new ControleConnexionRepo($this->pdo))->getInfoUser($this->login);
            if ($loginTry) {
                if ($loginTry['TYP_LOGIN'] == 'S') {
                } else {
                    $this->error[] = $this->trad->t('Connexion SSO impossible. Vous devez utiliser le lien d\'accès à l\'application non SSO.');
                }
            } else {
                $this->error[] = $this->trad->t('Identifiant ou mot de passe incorrect');
            }
        }
    }
}
