1KA_F2F/admin/survey/modules/mod_gorenje/SurveyGorenje.php
MAY 29c3fb4482 Preprečujem sledenje z odprtimi okni.
Pojačana varnost hashanja (a pozor, pri geslih ostaja MD5/SHA1/... kombo zarazi družljivosti).

Nadgradnja md5 bo poseben...tretma.
2023-01-23 20:39:16 +01:00

171 lines
5.1 KiB
PHP

<?php
class SurveyGorenje{
// Izpisemo ustrezen brand logo v anketi
public static function logoGorenje($ank_id, $usr_id){
global $site_url;
global $site_path;
global $lang;
$class = '';
$url = $site_url;
// Logo prikazemo angleski v vseh primerih kjer respondentov jezik ni slovenscina in ce ni custom - popravimo tudi link na anglesko stran (http in english namesto www)
if ($lang['language'] != 'Sloven&#353;&#269;ina') {
$class = ' class="english"';
}
// Preverimo ce slucajno nalozimo logo drugega proizvajalca
$other_logo = '';
$brand = self::getGorenjeVariable($ank_id, $brand_var='brand', $usr_id);
if($brand != ''){
// Preverimo ce logo sploh obstaja
if(file_exists($site_path.'main/survey/skins/___po_narocilu/Gorenje/logo/'.$brand.'.jpg'))
$other_logo = ' style="background-image: url(\''.$site_url.'/main/survey/skins/___po_narocilu/Gorenje/logo/'.$brand.'.jpg\');"';
}
echo '<div id="logo" '.$class.' '.$other_logo.'>';
echo ' <a href="' . $url . '" title="GorenjeGroup" target="_blank">GorenjeGroup</a>';
echo ' <div id="logo_right"></div>';
echo '</div>';
}
/**
* @desc Za gorenje vrne vrednosti za sistemsko spremenljivko (
*
* rekid - ID reklamacije
* brand - znamka izdelka
* ser - serviser
* serenota - servisna enota
* sercenter - servisni center
* drzava - drzava
*
* http://localhost/gorenje/a/962?rekid=123&brand=fdv&ser=jozko&serenota=enotaX&sercenter=centerYY&drzava=Mad%C5%BEarska
*
*/
public static function getGorenjeVariable($ank_id, $variable, $usr_id){
global $global_user_id;
// Poiscemo ustrezno sistemsko spremenljivko v bazi
$sql = sisplet_query("SELECT s.id FROM srv_spremenljivka s, srv_grupa g
WHERE s.gru_id=g.id AND g.ank_id='".$ank_id."' AND s.variable='".$variable."'");
$row = mysqli_fetch_array($sql);
$sql2 = sisplet_query("SELECT text FROM srv_data_text_active WHERE spr_id='".$row['id']."' AND usr_id='".$usr_id."'");
$row2 = mysqli_fetch_array($sql2);
if(isset($row2['text']))
return $row2['text'];
else
return '';
}
// Posljemo id reklamacije za katero je bila izpolnjena anketa proko gorenje api-ja
/*
WSDL: http://partners.gorenje.com/SAGWCFServices/SAGService.svc?wsdl
Operacija ZapisiAnketiranje je označena kot OneWay in prejme zgolj en parameter id_reklamacije.
Primer klica (SOAPUI):
POST http://partners.gorenje.com/SAGWCFServices/SAGService.svc HTTP/1.1
Accept-Encoding: gzip,deflate
Content-Type: text/xml;charset=UTF-8
SOAPAction: "http://tempuri.org/ISAGService/ZapisiAnketiranje"
Content-Length: 312
Host: partners.gorenje.com
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.1.1 (java 1.5)
Body:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/">
<soapenv:Header/>
<soapenv:Body>
<tem:ZapisiAnketiranje>
<tem:id_reklamacije>4056668</tem:id_reklamacije>
</tem:ZapisiAnketiranje>
</soapenv:Body>
</soapenv:Envelope>
*/
public static function sendGorenjeRekID($rek_id){
$gorenje_wsdl = 'http://partners.gorenje.com/SAGWCFServices/SAGService.svc?wsdl';
$options = array(
'location' => $gorenje_url,
'trace' => 1,
'exceptions' => 1,
'cache_wsdl' => WSDL_CACHE_NONE,
'connection_timeout' => 1000,
'keep_alive' => false,
'encoding' => 'UTF-8'
);
// Ustvarimo SOAP client
try{
$soapClient = new SoapClient($gorenje_wsdl, $options);
// Posljemo ID reklamacije
$object = new ZapisiAnketiranje($rek_id);
$parameters = array(
"ZapisiAnketiranje" => $object
);
$result = $soapClient->__soapCall("ZapisiAnketiranje", $parameters);
//var_dump($result);
//var_dump($soapClient->__getFunctions());
//var_dump($soapClient->__getTypes());
//var_dump($soapClient);
//echo '<pre>' . print_r(get_defined_vars(), true) . '</pre>';
}
catch(Exception $e){
var_dump($e);
}
}
// Ce ima uporabnik nastavljeno default geslo, ga preusmerimo na urejanje profila
public static function redirectGorenjePassword(){
global $site_url;
// Preverimo ce je default pass
$default_pass = SurveyGorenje::checkGorenjePassword();
// Izvedemo redirect
if($default_pass && ($_GET['a'] != 'nastavitve' || $_GET['m'] != 'global_user_myProfile')){
header ('location: ' .$site_url .'admin/survey/index.php?a=nastavitve&m=global_user_myProfile');
}
}
// Preverimo ce ima uporabnik nastavljeno default geslo
public static function checkGorenjePassword(){
global $global_user_id;
global $pass_salt;
$default_pass = '1234';
$sql = sisplet_query("SELECT pass FROM users WHERE id='".$global_user_id."'");
$row = mysqli_fetch_array($sql);
if(base64_encode((hash(SHA256, $default_pass.$pass_salt))) == $row['pass'])
return true;
else
return false;
}
}
// Razred za objekt, ki ga posljemo preko gorenje api-ja za id reklamacije
class ZapisiAnketiranje{
public function __construct($id_reklamacije){
$this->id_reklamacije = $id_reklamacije;
}
}