davide.cucurnia@vola.it
2024-07-02 b55a38378482bfe6a43315f5b665f608a7651880
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
<?php
 
namespace App\Http\Controllers\Profiles;
 
use App\Http\Controllers\Controller;
use App\Vola\Classes\Utils;
use Illuminate\Http\Request;
 
class ProfilesController extends Controller
{
    public bool $authorized = false;
 
    public function __construct(Request $request)
    {
        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)
    {
        if ($this->authorized) {
            return view('vodafone_fake_sso.choose_profile', [
                "domain" => Utils::getDomain($_SERVER['SERVER_NAME']),
                "loggedInfo" => Utils::getLoggedUser($request),
                "setUrl" => "/set",
                "clearUrl" => "/clear"
            ]);
        }
    }
 
    public function setFakeSSO(Request $request)
    {
        if ($this->authorized) {
            $json = $request->json()->all();
            $expire = time() + (60 * 30);
            $prof = isset($json['prof']) ? $json['prof'] : 0;
            $domain = Utils::getDomain($_SERVER['SERVER_NAME']);
            @setcookie('mc_FakeSSO', "xno:$prof", $expire, "/", $domain);
            @setcookie('SSOSESSIONID', "xno:$prof", $expire, "/", $domain);
            @setcookie('ObSSOCookie', "xno:$prof", $expire, "/", $domain);
            @setcookie('CAuthCookie', "xno:$prof", $expire, "/", $domain);
            @setcookie('vodafone_token', "415F2B31F1C15FA45C9A6E1CBEB0ADF3", $expire, "/", $domain);
            @setcookie('vodafone_name', "fake_sso", $expire, "/", $domain);
            return response()->json(["status" => 200, "response" => "OK"]);
        }
    }
 
    public function clearFakeSSO(Request $request)
    {
        $domain = Utils::getDomain($_SERVER['SERVER_NAME']);
        if ($this->authorized) {
            @setcookie('mc_FakeSSO', "", -1, "/", $domain);
            @setcookie('SSOSESSIONID', "", -1, "/", $domain);
            @setcookie('CAuthCookie', "", -1, "/", $domain);
            @setcookie('ObSSOCookie', "", -1, "/", $domain);
            @setcookie('vodafone_token', "", -1, "/", $domain);
            @setcookie('vodafone_name', "", -1, "/", $domain);
            return response()->json(["status" => 200, "response" => "OK"]);
        }
    }
 
    public function createView()
    {
        $defaultXML = \Arr::first(config('devtools.fake_sso_profiles'));
        $data = [
            "sso_getWebcustomerInformation" => \Arr::first($defaultXML["sso"]["getWebcustomerInformation"]["parametri"]["k"]),
            "sso_getMSISDNDetails" => \Arr::first($defaultXML["sso"]["getMSISDNDetails"]["parametri"]["k"]),
            "sso_getMSISDNList" => \Arr::first($defaultXML["sso"]["getMSISDNList"]["parametri"]["k"]),
            "sso_getSelectedMSISDNDetails" => \Arr::first($defaultXML["sso"]["getSelectedMSISDNDetails"]["parametri"]["ms"]),
            "sso_getInfoActivationWSC" => \Arr::first($defaultXML["sso"]["getInfoActivationWSC"]["parametri"]["boID"]),
            "picasso_getWebcustomerInformation" => \Arr::first($defaultXML["picasso"]["getWebcustomerInformation"]["parametri"]["k"]),
        ];
        return view('vodafone_fake_sso.create-view', $data);
    }
}