From 4532f1c4e89a1c662ce15fee6bbf30650d632366 Mon Sep 17 00:00:00 2001
From: Filippo Bertilotti <filippobertilotti@gmail.com>
Date: Wed, 09 Oct 2024 10:39:23 +0200
Subject: [PATCH] Merge branch 'main' of https://blit.dubbidigitali.it/r/~fbertilotti/fakesso

---
 resources/views/vodafone_fake_sso/response_templates/picasso/getWebcustomerInformation.blade.php |   13 +++++++++++++
 app/Vola/Services/VolaFakeHTTPResponder/VolaFakeHTTPResponder.php                                |   15 ++++++++++++++-
 app/Http/Requests/SSOFormRequest.php                                                             |    3 ++-
 app/Http/Controllers/Profiles/ProfilesController.php                                             |   10 +++++++---
 resources/views/vodafone_fake_sso/response_templates/legacy/getWebcustomerInformation.blade.php  |   19 +++++++++++++++++++
 5 files changed, 55 insertions(+), 5 deletions(-)

diff --git a/app/Http/Controllers/Profiles/ProfilesController.php b/app/Http/Controllers/Profiles/ProfilesController.php
index ea9410c..ed99ef4 100644
--- a/app/Http/Controllers/Profiles/ProfilesController.php
+++ b/app/Http/Controllers/Profiles/ProfilesController.php
@@ -10,7 +10,6 @@
 use Exception;
 use Illuminate\Http\Request;
 use Illuminate\Support\Facades\DB;
-use Ramsey\Uuid\Provider\Time\FixedTimeProvider;
 
 class ProfilesController extends Controller
 {
@@ -18,8 +17,11 @@
 
     public function __construct(Request $request)
     {
-
-        $this->authorized = true;
+        if (in_array($request->ip(),config('devtools.access_whitelist',[]))) {
+            $this->authorized = true;
+        } else {
+            return response()->json(["status" => 401, "response" => "unauthorized"]);
+        }
     }
 
     public function getFakeSSO(Request $request)
@@ -85,9 +87,11 @@
         $productsList = $databaseHandler->readProducts();
         return view('vodafone_fake_sso.show-write-view', [ 'productsList' => $productsList ]);
     }
+
     public function saveUser(SSOFormRequest $request) {
         $data = $request->all();
         $databaseHandler = new FakeSSODatabaseHandler;
+        $databaseHandler->insertDataIntoTables($data);
         return view("vodafone_fake_sso.db-create-view");
     }
 
diff --git a/app/Http/Requests/SSOFormRequest.php b/app/Http/Requests/SSOFormRequest.php
index 6848238..016096d 100644
--- a/app/Http/Requests/SSOFormRequest.php
+++ b/app/Http/Requests/SSOFormRequest.php
@@ -2,6 +2,7 @@
 
 namespace App\Http\Requests;
 
+use App\Rules\Base64String;
 use Illuminate\Foundation\Http\FormRequest;
 
 class SSOFormRequest extends FormRequest
@@ -24,7 +25,7 @@
     public function rules()
     {
         return [
-            'EmailAddress' => 'required|email|not_regex:/<[^>]+?>/',
+            'EmailAddress' => ['required', 'email', new ScriptCheck()],
             'Name' => 'required|not_regex:/<[^>]+?>/',
             'Surname' => 'required|not_regex:/<[^>]+?>/',
             'sim_1' => 'digits_between:10,10|not_regex:/<[^>]+?>/'
diff --git a/app/Vola/Services/VolaFakeHTTPResponder/VolaFakeHTTPResponder.php b/app/Vola/Services/VolaFakeHTTPResponder/VolaFakeHTTPResponder.php
index a0cd65e..3257b68 100644
--- a/app/Vola/Services/VolaFakeHTTPResponder/VolaFakeHTTPResponder.php
+++ b/app/Vola/Services/VolaFakeHTTPResponder/VolaFakeHTTPResponder.php
@@ -2,6 +2,7 @@
 
 namespace App\Vola\Services\VolaFakeHTTPResponder;
 
+use App\Models\VodafoneUser;
 use App\Vola\Classes\Utils;
 use Cookie;
 use GuzzleHttp\Promise\RejectedPromise;
@@ -15,9 +16,14 @@
     public array $data;
     private array $xmlResponses;
 
+    protected string $pathTemplateFolderLegacy;
+    protected string $pathTemplateFolderPicasso;
+
     public function __construct()
     {
         $this->xmlResponses = config('devtools.fake_sso_profiles');
+        $this->pathTemplateFolderLegacy = 'response_templates.legacy';
+        $this->pathTemplateFolderPicasso = 'response_templates.picasso';
     }
 
     public function getModelBasedResponses(Request $request): array
@@ -27,7 +33,7 @@
 
         if (isset($profile)) {
 
-            $responseContent["data"] = 'test. funziono ma le logiche non sono state ancora implementate';
+            $responseContent["data"] = $this->fillXmlResponses($profile, $picassoRequest);
             $responseContent["status"] = 200;
             \RequestLogger::logProcessedRequest($request, $responseContent, (($picassoRequest) ? 'Picasso' : 'SSO Legacy') );
             return $responseContent;
@@ -42,6 +48,13 @@
 
     }
 
+    public function fillXMLResponses(string $profile, bool $picasso): string
+    {
+        $user = VodafoneUser::where(['id' => $profile]);
+        $viewFolder = ($picasso) ? $this->pathTemplateFolderPicasso : $this->pathTemplateFolderLegacy;
+        return view($viewFolder, ['user' => $user])->render(); //views/response_templates/legacy/*.blade.php ?? *.xml
+    }
+
     public function getResponses(Request $request, $selectedUser, $picasso = false): string|array
     {
             $uriParts = explode("?", $request->url());
diff --git a/resources/views/vodafone_fake_sso/response_templates/legacy/getWebcustomerInformation.blade.php b/resources/views/vodafone_fake_sso/response_templates/legacy/getWebcustomerInformation.blade.php
new file mode 100644
index 0000000..499df67
--- /dev/null
+++ b/resources/views/vodafone_fake_sso/response_templates/legacy/getWebcustomerInformation.blade.php
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<getWebCustomerInformation>
+    <EmailAddress>{{$email}}</EmailAddress>
+    <Sex></Sex>
+    <Surname>DoppiaSim</Surname>
+    <BirthProvinceName>LUCCA</BirthProvinceName>
+    <BirthPlace>VIAREGGIO</BirthPlace>
+    <Type_ID>2</Type_ID>
+    <Birthdate>Fri Apr 16 00:00:00 MET 1971</Birthdate>
+    <HomeProvinceName>LUCCA</HomeProvinceName>
+    <Custcode>5.123123</Custcode>
+    <ProfileIdentifier>BUSINESS_EMPLOYEE</ProfileIdentifier>
+    <MicroBusiness>false</MicroBusiness>
+    <HomePhone></HomePhone>
+    <Address>VIA BERNARDINO</Address>
+    <FiscalCode>MNCCST71D16L833U</FiscalCode>
+    <Name>DoppiaSim</Name>
+    <Username>DoppiaSim</Username>
+</getWebCustomerInformation>
diff --git a/resources/views/vodafone_fake_sso/response_templates/picasso/getWebcustomerInformation.blade.php b/resources/views/vodafone_fake_sso/response_templates/picasso/getWebcustomerInformation.blade.php
new file mode 100644
index 0000000..2ee3e71
--- /dev/null
+++ b/resources/views/vodafone_fake_sso/response_templates/picasso/getWebcustomerInformation.blade.php
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<getWebCustomerInformation>
+    <errorCode>0</errorCode>
+    <Surname>DoppiaSim</Surname>
+    <Name>DoppiaSim</Name>
+    <Username>DoppiaSim</Username>
+    <EmailAddress>davide.cucurnia@vola.it</EmailAddress>
+    <BirthProvinceName>Non disponibile</BirthProvinceName>
+    <HomeProvinceName>Non disponibile</HomeProvinceName>
+    <Custcode>5.123123</Custcode>
+    <MicroBusiness>false</MicroBusiness>
+    <ProfileIdentifier>BUSINESS_EMPLOYEE</ProfileIdentifier>
+</getWebCustomerInformation>'

--
Gitblit v1.8.0