Shadow-Here


Server : Apache
System : Linux methusalix2 3.16.0-11-amd64 #1 SMP Debian 3.16.84-1 (2020-06-09) x86_64
User : hios ( 1437)
PHP Version : 5.6.40-0+deb8u12
Disable Function : proc_close,proc_open,dl,shell_exec,passthru
Directory :  /home/priorityservice-prod.1697609600/laravel/app/Http/Controllers/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :
Current File : /home/priorityservice-prod.1697609600/laravel/app/Http/Controllers/AuthController.php
<?php

namespace App\Http\Controllers;
use Illuminate\Http\Request;
use GuzzleHttp\Client;
use Redirect;
use XmlParser;

class AuthController extends Controller
{

    const HTTP_OK = 200;

    public function login()
    {
        return view('loginform', []);
    }

    public function logout(Request $request) {
        $request->session()->flush();

        return redirect()->route('login');
    }

    public function validateLogin(Request $request)
    {
        $client = new Client([
            'base_uri' => 'https://dealers.webasto.com/services/priorityservicev1.asmx/' // prod
        //    'base_uri' => 'http://webasto01.bcomone.nl/services/priorityservicev1.asmx/' // dev
        ]);
        $res = $client->request('POST', 'AuthenticateUser', [
            'form_params' => [
                'emailAddress' => $request->username,
                'password' => $request->password
            ]
        ]);

        if ($res->getStatusCode() !== self::HTTP_OK) {
            return Redirect::back()->withInput()->withErrors(['msg' => trans('login.error-general')]);
        }

        $body = $res->getBody();

        $xml = XmlParser::extract($body);
        $successXml = $xml->parse([
            'success' => ['uses' => 'Success']
        ]);

        if (filter_var($successXml['success'], FILTER_VALIDATE_BOOLEAN) === false) {

            $parsedMessage = $xml->parse([
                'message' => ['uses' => 'Message'],
            ]);

            $message = $parsedMessage['message'];

            if ($message == "Invalid emailaddress or password") {
                $message = trans('login.error-invalid-password');
            }

            return Redirect::back()->withInput()->withErrors(['msg' => $message]);
        }

        $user = $xml->parse([
            'user.id' => ['uses' => 'User.UserId'],
            'user.name' => ['uses' => 'User.Name'],
            'user.email' => ['uses' => 'User.EmailAddress'],
            'user.activated' => ['uses' => 'User.Activated'],
            'user.companyId' => ['uses' => 'User.CompanyId'],
            'user.countryId' => ['uses' => 'User.CountryId'],
            'user.cultureId' => ['uses' => 'User.CultureId'],
        ]);

        $company = $xml->parse([
            'company.id' => ['uses' => 'User.Company.CompanyId'],
            'company.dealerId' => ['uses' => 'User.Company.DealerId'],
            'company.name' => ['uses' => 'User.Company.Name'],
            'company.address' => ['uses' => 'User.Company.Address'],
            'company.zip' => ['uses' => 'User.Company.ZipCode'],
            'company.city' => ['uses' => 'User.Company.City'],
            'company.countryId' => ['uses' => 'User.Company.CountryId'],
            'company.phoneNumber' => ['uses' => 'User.Company.PhoneNumber'],
        ]);

        $company['company.countryName'] = $this->getCountryName($company['company.countryId']);

        foreach ($user as $key => $value) {
            $request->session()->put($key, $value);
        }

        foreach ($company as $key => $value) {
            $request->session()->put($key, $value);
        }

        if($request->has('debug') && $request->debug == 1) {
            return $request->session()->all();
        }

        return Redirect::route('priority');
    }

    private function getCountryName($countryId) {
        $client = new Client([
            'base_uri' => 'https://dealers.webasto.com/services/priorityservicev1.asmx/'
          //  'base_uri' => 'http://webasto01.bcomone.nl/services/priorityservicev1.asmx/' // dev
        ]);
        $res = $client->request('POST', 'GetTsCountry', [
            'form_params' => [
                'tsCountryId' => $countryId
            ]
        ]);

        if ($res->getStatusCode() !== self::HTTP_OK) {
            return Redirect::back()->withInput()->withErrors(['msg' => trans('login.error-general')]);
        }

        $body = $res->getBody();

        $xml = XmlParser::extract($body);
        $successXml = $xml->parse([
            'success' => ['uses' => 'Success']
        ]);

        if (filter_var($successXml['success'], FILTER_VALIDATE_BOOLEAN) === false) {
            return '';
        }

        $country = $xml->parse([
            'country.name' => ['uses' => 'Country.Name']
        ]);


        return $country['country.name'];
    }
}

Samx