From 42e9cec923b95ca44baff014f8e9eaef464ce44a Mon Sep 17 00:00:00 2001
From: Filippo Bertilotti <filippobertilotti@gmail.com>
Date: Mon, 22 Jul 2024 09:37:23 +0200
Subject: [PATCH] inizializzazione servizio relativo alla gestione del database e test inserimento dati del form su database

---
 app/Vola/Classes/Utils.php |   34 +++++++++++++++++++++++++---------
 1 files changed, 25 insertions(+), 9 deletions(-)

diff --git a/app/Vola/Classes/Utils.php b/app/Vola/Classes/Utils.php
index 073e1cf..c510f04 100644
--- a/app/Vola/Classes/Utils.php
+++ b/app/Vola/Classes/Utils.php
@@ -96,6 +96,16 @@
         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);
@@ -109,19 +119,25 @@
     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) {
-            if (is_null(self::getLegacyAuthCookie($request))) {
-                $reqParams = !empty($request->query()) ? $request->query() : [];
-                if (isset($reqParams["t"])) {
-                    $profile = $reqParams["t"];
-                }
-            } else {
-                $profile = self::getLegacyAuthCookie($request);
+        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 if ($picassoRequest && self::getPicassoAuthCookie($request)) {
+        } 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;
     }

--
Gitblit v1.8.0