2 files added
7 files modified
| | |
| | | use Exception; |
| | | use Illuminate\Http\Request; |
| | | use Illuminate\Support\Facades\DB; |
| | | use Ramsey\Uuid\Provider\Time\FixedTimeProvider; |
| | | |
| | | class ProfilesController extends Controller |
| | | { |
| | |
| | | |
| | | 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) |
| | |
| | | $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"); |
| | | } |
| | | |
| | |
| | | |
| | | namespace App\Http\Requests; |
| | | |
| | | use App\Rules\Base64String; |
| | | use Illuminate\Foundation\Http\FormRequest; |
| | | |
| | | class SSOFormRequest extends FormRequest |
| | |
| | | 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:/<[^>]+?>/' |
| | |
| | | <?php |
| | | |
| | | namespace App\Vola\Services\FakeSSODatabase; |
| | | |
| | | use App\Models\Msisdn; |
| | |
| | | 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; |
| | | } |
| | |
| | | |
| | | namespace App\Vola\Services\VolaFakeHTTPResponder; |
| | | |
| | | use App\Models\VodafoneUser; |
| | | use App\Vola\Classes\Utils; |
| | | use Cookie; |
| | | use GuzzleHttp\Promise\RejectedPromise; |
| | |
| | | public array $data; |
| | | private array $xmlResponses; |
| | | |
| | | protected string $pathTemplateFolderLegacy; |
| | | protected string $pathTemplateFolderPicasso; |
| | | |
| | | public function __construct() |
| | | { |
| | | $this->xmlResponses = config('devtools.fake_sso_profiles'); |
| | | $this->pathTemplateFolderLegacy = 'vodafone_fake_sso.response_templates.legacy'; |
| | | $this->pathTemplateFolderPicasso = 'vodafone_fake_sso.response_templates.picasso'; |
| | | } |
| | | |
| | | public function getModelBasedResponses(Request $request): array |
| | |
| | | |
| | | if (isset($profile)) { |
| | | |
| | | $responseContent["data"] = 'test. funziono ma le logiche non sono state ancora implementate'; |
| | | $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; |
| | |
| | | ]; |
| | | } |
| | | |
| | | } |
| | | |
| | | public function fillXMLResponses(string $method, string $profile, bool $picasso): string |
| | | { |
| | | $user = VodafoneUser::where(['id' => $profile])->first(); |
| | | //arguments |
| | | $viewFolder = ($picasso) ? $this->pathTemplateFolderPicasso : $this->pathTemplateFolderLegacy; |
| | | $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 |
| | |
| | | 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.'; |
| | | } |
| | | } |
| | | |
| | |
| | | |
| | | namespace Database\Seeders; |
| | | |
| | | use App\Models\Msisdn; |
| | | use Illuminate\Database\Seeder; |
| | | use Illuminate\Support\Facades\DB; |
| | | |
| | |
| | | 'email' => 'davide.cucurnia@vola.it', |
| | | 'password' => bcrypt('Password01'), |
| | | ]); |
| | | // scrivo l'utente |
| | | // scrivo le sim associate all'utente |
| | | // PRESUMENDO CHE I PRODOTTI MENZIONATI ESISTANO GIA cerco i prodotti che dovrei associare alla sim |
| | | // scrivo relazioni prodotti - sim |
| | | DB::table('users')->insert([ |
| | | 'username' => 'vola02', |
| | | 'email' => 'cristiano.mancini@vola.it', |
| | | 'password' => bcrypt('Password02'), |
| | | ]); |
| | | // scrivo l'utente |
| | | // scrivo le sim associate all'utente |
| | | // PRESUMENDO CHE I PRODOTTI MENZIONATI ESISTANO GIA cerco i prodotti che dovrei associare alla sim |
| | | // scrivo relazioni prodotti - sim |
| | | } |
| | | } |
New file |
| | |
| | | <?xml version="1.0" encoding="iso-8859-1"?> |
| | | <getWebCustomerInformation> |
| | | <EmailAddress>{{$user->EmailAddress}}</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> |
New file |
| | |
| | | <?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>' |
| | |
| | | <?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'); |
| | |
| | | |
| | | 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'); |
| | |
| | | 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'); |