From 56f8c80f9a610c80810b24718340bc9cfd14df07 Mon Sep 17 00:00:00 2001 From: Filippo Bertilotti <filippobertilotti@gmail.com> Date: Mon, 02 Sep 2024 10:14:35 +0200 Subject: [PATCH] creazione view nuova per inserimento database e refactor --- app/Vola/Classes/Utils.php | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 59 insertions(+), 0 deletions(-) diff --git a/app/Vola/Classes/Utils.php b/app/Vola/Classes/Utils.php index 8374b19..c510f04 100644 --- a/app/Vola/Classes/Utils.php +++ b/app/Vola/Classes/Utils.php @@ -3,6 +3,8 @@ namespace App\Vola\Classes; use App\Models\MailTemplate; +use App\Vola\Services\VolaFakeHTTPResponder\VolaFakeHTTPResponder; +use Illuminate\Http\Request; use Illuminate\Support\Facades\Log; class Utils @@ -94,5 +96,62 @@ return FALSE; } + public static function get_string_between(string $string, string $start, string $end): string + { + $string = ' ' . $string; + $ini = strpos($string, $start); + if ($ini == 0) return ''; + $ini += strlen($start); + $len = strpos($string, $end, $ini) - $ini; + return substr($string, $ini, $len); + } + + public static function getLegacyAuthCookie(Request $request): ?string + { + return $request->cookie('CAuthCookie', null); + } + + public static function getPicassoAuthCookie(Request $request): ?string + { + return $request->cookie('SSOSESSIONID', null); + } + + public static function getRequestedUser(Request $request): ?string + { + $picassoRequest = (str_starts_with($request->getRequestUri(), '/picasso/',)); + $isLoggedRequest = str_contains( self::get_string_between($request->getRequestUri(), '/', '?'), 'islogged' ); + $profile = null; + + if ((!$picassoRequest) && (!$isLoggedRequest)) { + // la rotta sso islogged usa solo il cookie per identificare l'utente + $reqParams = !empty($request->query()) ? $request->query() : []; + if (isset($reqParams["t"])) { + $profile = $reqParams["t"]; + } + } else { + // tutte le chiamate che non sono islogged usano il parametro t (token) per identificare l'utente + $profile = self::getLegacyAuthCookie($request); + } + + if ($picassoRequest) { + // picasso usa sempre il cookie per identifcare l'utente + $profile = self::getPicassoAuthCookie($request); + } + + $profile = (is_null($profile)) ? null : intval(str_replace("xno:", "", $profile)); + return $profile; + } + + public static function getLoggedUser(Request $request): array + { + $cookie = self::getLegacyAuthCookie($request); + $profile = (is_null($cookie)) ? null : intval(str_replace("xno:", "", $cookie)); + $isLogged = (new VolaFakeHTTPResponder())->getLoggedLegacy($profile); + $xml = self::convertXMLStrToArray($isLogged); + if (is_string($xml) || is_bool($xml)) { + return ["logged" => '0', 'message' => $isLogged]; + } + return $xml; + } } -- Gitblit v1.8.0