Filippo Bertilotti
7 days ago b35a97d09497e3e7fc561bb4a4f435ec7ae8ff4c
Merge branch 'main' of https://blit.dubbidigitali.it/r/~fbertilotti/fakesso
5 files modified
62 ■■■■■ changed files
app/Vola/Services/FakeSSODatabase/FakeSSODatabaseHandler.php 34 ●●●●● patch | view | raw | blame | history
app/Vola/Services/VolaFakeHTTPResponder/VolaFakeHTTPResponder.php 21 ●●●●● patch | view | raw | blame | history
resources/views/vodafone_fake_sso/response_templates/legacy/getWebcustomerInformation.blade.php 2 ●●● patch | view | raw | blame | history
routes/picasso.php 3 ●●●● patch | view | raw | blame | history
routes/sso.php 2 ●●●●● patch | view | raw | blame | history
app/Vola/Services/FakeSSODatabase/FakeSSODatabaseHandler.php
@@ -1,4 +1,5 @@
<?php
namespace App\Vola\Services\FakeSSODatabase;
use App\Models\Msisdn;
@@ -6,34 +7,37 @@
use App\Models\VodafoneUser;
use Exception;
use Illuminate\Support\Facades\DB;
use PDOException;
class FakeSSODatabaseHandler {
class FakeSSODatabaseHandler
{
    public function insertDataIntoTables(array $data) {
        try{
            $userModel = VodafoneUser::create(['Name' => $data["Name"],
                                               'Surname' => $data["Surname"],
                                               'EmailAddress' => $data["EmailAddress"]]);
            $msisdnModel = Msisdn::create(['MSISDN' => $data["sim_1"],
                                           'IdPiano' => $data['IdPiano'],
                                           'LinkedUser' => $userModel->id]);
    public function insertDataIntoTables(array $data)
    {
        try {
            $userModel = VodafoneUser::create([
                'Name' => $data["Name"],
                'Surname' => $data["Surname"],
                'EmailAddress' => $data["EmailAddress"]
            ]);
            $msisdnModel = Msisdn::create([
                'MSISDN' => $data["sim_1"],
                'IdPiano' => $data['IdPiano'],
                'LinkedUser' => $userModel->id
            ]);
            foreach ($data["products_select"] as $index => $value) {
                $product = Products::find($value);
                $product->msisdn()->attach($msisdnModel->id);
            }
        }catch(PDOException $e) {
        } catch (Exception $e) {
            echo $e->getMessage();
        }
    }
    public function readProducts(): array {
    public function readProducts(): array
    {
        $productsList = Products::select("Name", "id")->get()?->toArray();
        return $productsList;
    }
app/Vola/Services/VolaFakeHTTPResponder/VolaFakeHTTPResponder.php
@@ -22,8 +22,8 @@
    public function __construct()
    {
        $this->xmlResponses = config('devtools.fake_sso_profiles');
        $this->pathTemplateFolderLegacy = 'response_templates.legacy';
        $this->pathTemplateFolderPicasso = 'response_templates.picasso';
        $this->pathTemplateFolderLegacy = 'vodafone_fake_sso.response_templates.legacy';
        $this->pathTemplateFolderPicasso = 'vodafone_fake_sso.response_templates.picasso';
    }
    public function getModelBasedResponses(Request $request): array
@@ -33,7 +33,10 @@
        if (isset($profile)) {
            $responseContent["data"] = $this->fillXmlResponses($profile, $picassoRequest);
            $uriParts = explode("?", $request->url());
            $method = Str::afterLast($uriParts[0], "/");
            $responseContent["data"] = $this->fillXmlResponses($method, $profile, $picassoRequest);
            $responseContent["status"] = 200;
            \RequestLogger::logProcessedRequest($request, $responseContent, (($picassoRequest) ? 'Picasso' : 'SSO Legacy') );
            return $responseContent;
@@ -48,11 +51,13 @@
    }
    public function fillXMLResponses(string $profile, bool $picasso): string
    public function fillXMLResponses(string $method, string $profile, bool $picasso): string
    {
        $user = VodafoneUser::where(['id' => $profile]);
        $user = VodafoneUser::where(['id' => $profile])->first();
        //arguments
        $viewFolder = ($picasso) ? $this->pathTemplateFolderPicasso : $this->pathTemplateFolderLegacy;
        return view($viewFolder, ['user' => $user])->render(); //views/response_templates/legacy/*.blade.php ?? *.xml
        $view = $viewFolder . "." . $method;
        return view($view, ['user' => $user])->render(); //views/response_templates/legacy/*.blade.php ?? *.xml
    }
    public function getResponses(Request $request, $selectedUser, $picasso = false): string|array
@@ -178,9 +183,9 @@
            case 'no-method-on-user':
                return 'This method response is not set for this user. Check this server database.';
            case 'no-method':
                return 'Couldnt detect requested method. Check your request url.';
                return 'Couldnt identify requested method. Check your request url.';
            default:
                return 'Couldnt detect proper response.';
                return 'Couldnt identify proper response.';
        }
    }
resources/views/vodafone_fake_sso/response_templates/legacy/getWebcustomerInformation.blade.php
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<getWebCustomerInformation>
    <EmailAddress>{{$email}}</EmailAddress>
    <EmailAddress>{{$user->EmailAddress}}</EmailAddress>
    <Sex></Sex>
    <Surname>DoppiaSim</Surname>
    <BirthProvinceName>LUCCA</BirthProvinceName>
routes/picasso.php
@@ -1,7 +1,6 @@
<?php
Route::group(['prefix' => 'picasso', 'middleware' => ['web']], function ()
{
Route::group(['prefix' => 'picasso', 'middleware' => ['web']], function () {
    Route::get('/auth/islogged', '\App\Http\Controllers\FakeResponder\FakeResponder@manageLegacyRequest');
    Route::get('/services/getWebcustomerInformation', '\App\Http\Controllers\FakeResponder\FakeResponder@manageLegacyRequest');
    Route::get('/services/getMsisdnList', '\App\Http\Controllers\FakeResponder\FakeResponder@manageLegacyRequest');
routes/sso.php
@@ -2,6 +2,7 @@
Route::group(['prefix' => 'sso', 'middleware' => ['web']], function ()
{
    // metodi vecchi basati sulle stringhe xml giĆ  precompilate
    Route::get('/islogged', '\App\Http\Controllers\FakeResponder\FakeResponder@manageLegacyRequest');
    Route::get('/getWebcustomerInformation', '\App\Http\Controllers\FakeResponder\FakeResponder@manageLegacyRequest');
    Route::get('/getSelectedMSISDNDetails', '\App\Http\Controllers\FakeResponder\FakeResponder@manageLegacyRequest');
@@ -9,6 +10,7 @@
    Route::get('/getMSISDNDetails', '\App\Http\Controllers\FakeResponder\FakeResponder@manageLegacyRequest');
    Route::get('/getInfoActivationWSC', '\App\Http\Controllers\FakeResponder\FakeResponder@manageLegacyRequest');
    // metodi nuovi basati su db
    Route::get('/v2/islogged', '\App\Http\Controllers\FakeResponder\FakeResponder@modelBasedRequest');
    Route::get('/v2/getWebcustomerInformation', '\App\Http\Controllers\FakeResponder\FakeResponder@modelBasedRequest');
    Route::get('/v2/getSelectedMSISDNDetails', '\App\Http\Controllers\FakeResponder\FakeResponder@modelBasedRequest');