summaryrefslogblamecommitdiffstats
path: root/frontend/1kaDomainChange/classes/class.DomainChange.php
blob: 085ed0e4e1eb2bfe68e8ca1228d50b7316b17c15 (plain) (tree)

































































































































































































































































                                                                                                                                                              
<?php

/**
 *
 *  Class ki skrbi za prenos domene www.1ka.si na oneclicksurvey.com oz. enklikanketa.si
 *
 */

class DomainChange{


    private static $instance = false;
    
    private $usr_id;
    private $user_switch_status;    // Status preklopa uporabnika (0 - ni preklopil, 1 - je zavrnil preklop in ostal na 1ka.si, 2 - je preklopil na oneclick)

    public static $domain_original = 'www.1ka.si';
    //public static $domain_original = 'localhost';
    public static $domain_new = 'www.oneclicksurvey.com';
    //public static $domain_new = 'localhost';

	
    public static function getInstance($usr_id){
        
        if (!self::$instance)
			self::$instance = new DomainChange($usr_id);
			
		return self::$instance;
	}

    private function __construct($usr_id){

        // Ce nimamo usr_id-ja ga poskusimo pridobiti iz id-ja ankete
        if(!isset($usr_id) || $usr_id < 1 || $usr_id == ''){
            echo 'Napaka! Manjka ID uporabnika.';
            die();
        }

        $this->usr_id = $usr_id;

        // Dobimo status preklopa za userja
        $sqlUser = sisplet_query("SELECT switch_status FROM 1ka_domain_change_user WHERE usr_id='".$this->usr_id."'");

        // Uporabnik se ni naredil nic
        if(mysqli_num_rows($sqlUser) == 0)
            $this->user_switch_status = 0;

        $rowUser = mysqli_fetch_array($sqlUser);
        $this->user_switch_status = $rowUser['switch_status'];
    }


    // Preverimo ce izvajamo na aplikaciji preklop domene
    public static function check1kaDomainChange(){
       global $site_domain;

        // ZAENKRAT JE CEL MODUL UGASNJEN
        return false;
        
        // Ce smo na www.1ka.si, oneclicksurvey.com ali enklikanketa.si
        //if(in_array($site_domain, array('www.1ka.si', 'www.oneclicksurvey.com', 'www.enklikanketa.si'))){
        //if(in_array($site_domain, array(self::$domain_original, self::$domain_new)))
        if($site_domain == self::$domain_original)
            return true;
        else
            return false;
    }


    // Ali prikazujemo kreiranje, kopiranje ankete
    public function domainChangeLimits(){
        global $site_domain;

        // Skrivamo samo na originalni domeni (www.1ka.si) in se ni naredil preklopa na oneclicksurvey.com
        if($site_domain == self::$domain_original && $this->user_switch_status != '2'){
            
            // Preverimo aktiven paket - ce nima placanega paketa, mu vse skrijemo
            $userAccess = UserAccess::getInstance($this->usr_id);
            $user_package = $userAccess->getPackage();
            if ($user_package != '2' && $user_package != "3"){
                return true;
            }        
        }

        return false;
    }

    // Ali prikazujemo kreiranje, kopiranje ankete
    public function visibleSwitchPopup(){
        global $site_domain;

        if($site_domain != self::$domain_original)
            return false;
        
        if($this->user_switch_status != 0)
            return false;

        return true;
    }


    // Izpisemo popup obvestilo, da je funkcionalnost onemogocena in naj kupi paket
    private function displaySwitchPopup(){
        global $lang;
        global $site_url;

        echo '<h2>'.$lang['domain_switch_popup_title'].'</h2>';

        echo '<div class="popup_close"><a href="#" onclick="popupUserAccess_close();">✕</a></div>';

        echo '<p>'.$lang['domain_switch_popup_text'].'</p>';

        echo '<div class="button_holder">';
        echo '  <button class="medium white-blue" href="#" onClick="popupSwitch_save(\'1\');">'.$lang['domain_switch_popup_no'].'</button>';
        echo '  <button class="medium blue" href="#" onClick="popupSwitch_save(\'2\');">'.$lang['domain_switch_popup_yes'].'</button>';
        echo '</div>';
    }


    // Ajax klici
    public function ajax(){
        global $site_url;


        // Prikazemo popup z izbiro preklopa
        if($_GET['a'] == 'displaySwitchPopup') {
            $this->displaySwitchPopup($what);
        }

        // Prikazemo popup z izbiro preklopa
        elseif($_GET['a'] == 'setSwitchStatus') {

            $switch_status = isset($_POST['switch_status']) ? $_POST['switch_status'] : '';

            if($switch_status != ''){

                /*$sqlUser = sisplet_query("INSERT INTO 1ka_domain_change_user 
                                                (usr_id, switch_time, switch_status)
                                            VALUES
                                                ('".$this->usr_id."', NOW(), '".$switch_status."')
                                            ON DUPLICATE KEY UPDATE
                                                switch_status='".$switch_status."'
                                        ");*/

                // Izvede se prenos na oneclicksurvey.com - userja se odjavi na 1ka.si in prijavi na oneclicksurvey.com
                if($switch_status == '2'){
                    $return_data = array(
                        'action' => 'switch_domain',
                        'url'   => $site_url.'/domain-change.php?action=logout'
                    );

                    echo json_encode($return_data);
                }
            }
        }

    }


    // Pri preklopu domene odjavimo userja iz stare domene
    public static function domainChangeLogoutOld($secret_key){
        global $cookie_domain;

        // Dobmo piskotek za post na domeno oneclicksurvey.com (tam uporabnika prijavimo)
        $cookie = array(
            'secret'    => $_COOKIE['secret'],
            'uid'       => $_COOKIE['uid'],
            'unam'      => $_COOKIE['unam']
        );

        if (isset ($_COOKIE['g2fa']) && !empty($_COOKIE['g2fa']))
            $cookie['g2fa'] = $_COOKIE['g2fa'];

        $cookie_string = json_encode($cookie);

        $cipher = "AES-256-CBC";
        $encrypted_cookie_string = openssl_encrypt($cookie_string, $cipher, $secret_key);


        // Pobrisemo piskotek in uporabnika odjavimo
        setcookie('uid', '', time() - 3600, '/', $cookie_domain);
        setcookie('unam', '', time() - 3600, '/', $cookie_domain);
        setcookie('secret', '', time() - 3600, '/', $cookie_domain);
        setcookie('ME', '', time() - 3600, '/', $cookie_domain);
        setcookie('P', '', time() - 3600, '/', $cookie_domain);
        setcookie("AN", '', time() - 3600, '/', $cookie_domain);
        setcookie("AS", '', time() - 3600, '/', $cookie_domain);
        setcookie("AT", '', time() - 3600, '/', $cookie_domain);

        setcookie("DP", $p, time() - 3600 * 24 * 365, "/", $cookie_domain);
        setcookie("DC", $p, time() - 3600 * 24 * 365, "/", $cookie_domain);
        setcookie("DI", $p, time() - 3600 * 24 * 365, "/", $cookie_domain);
        setcookie("SO", $p, time() - 3600 * 24 * 365, "/", $cookie_domain);
        setcookie("SPO", $p, time() - 3600 * 24 * 365, "/", $cookie_domain);
        setcookie("SL", $p, time() - 3600 * 24 * 365, "/", $cookie_domain);

        // pobrisi se naddomeno! (www.1ka.si naj pobrise se 1ka.si)
        if (substr_count($cookie_domain, ".") > 1) {
            $nd = substr($cookie_domain, strpos($cookie_domain, ".") + 1);

            setcookie('uid', '', time() - 3600, '/', $nd);
            setcookie('unam', '', time() - 3600, '/', $nd);
            setcookie('secret', '', time() - 3600, '/', $nd);
            setcookie('ME', '', time() - 3600, '/', $nd);
            setcookie('P', '', time() - 3600, '/', $nd);
            setcookie("AN", '', time() - 3600, '/', $nd);
            setcookie("AS", '', time() - 3600, '/', $nd);
            setcookie("AT", '', time() - 3600, '/', $nd);

            setcookie("DP", $p, time() - 3600 * 24 * 365, "/", $nd);
            setcookie("DC", $p, time() - 3600 * 24 * 365, "/", $nd);
            setcookie("DI", $p, time() - 3600 * 24 * 365, "/", $nd);
            setcookie("SO", $p, time() - 3600 * 24 * 365, "/", $nd);
            setcookie("SPO", $p, time() - 3600 * 24 * 365, "/", $nd);
            setcookie("SL", $p, time() - 3600 * 24 * 365, "/", $nd);
        }
        

        // Preusmerimo na oneclicksurvey s parametri za prijavo
        header('Location: http://'.self::$domain_new.'/domain-change.php?action=login&c='.urlencode($encrypted_cookie_string));
    }

    // Pri preklopu domene prijavimo userja v novo stran
    public static function domainChangeLoginNew($secret_key){
        global $cookie_domain;

        // Check if the request is coming from an allowed domain
        $referer = $_SERVER['HTTP_REFERER'];
        $domain = parse_url($referer, PHP_URL_HOST);

        if ($domain != self::$domain_original) {
            header("HTTP/1.0 403 Forbidden");
            die("Forbidden");
        }


        // Get cookies from parameter
        if(!isset($_GET['c']) || $_GET['c'] == ''){
            die();
        }

        $encrypted_cookie_string = $_GET['c'];

        // Decrypt cookies
        $cipher = "AES-256-CBC";
        $cookie_string = openssl_decrypt($encrypted_cookie_string, $cipher, $secret_key);
        $cookie = json_decode($cookie_string);

        $LifeTime = 43200;

        // Set cookies on new domain
        setcookie("uid", $cookie->uid, time() + $LifeTime, '/', $cookie_domain);
        setcookie("unam", $cookie->unam, time() + $LifeTime, '/', $cookie_domain);
        setcookie("secret", $cookie->secret, time() + $LifeTime, '/', $cookie_domain);

        header('Location: http://'.self::$domain_new);
    }
}