1document.addEventListener("DOMContentLoaded", () => { 2 ready(); 3}, { once: true }); 4 5var isUserLoggedIn = null; 6async function ready(e) { 7 8 // console.log(ajaxObject.loginType); 9 10 switch (ajaxObject.loginType) { 11 case 'dedanext_civilianext': 12 await initDedaNext_CiviliaNext(); 13 break; 14 case 'nessun_sso': 15 await initDedaNext_CiviliaNext(); 16 break; 17 case 'anthesi_helixforms': 18 await initAnthesi_HelixForms(); 19 break; 20 case 'maggioli_authservice': 21 await initMaggioli_AuthService(); 22 break; 23 case 'engineering_muniiam': 24 await initEngineering_MuniIAM(); 25 break; 26 case 'potess_iam': 27 await initPotess_IAM(); 28 break; 29 case 'wp': 30 default: 31 await initDedaNext_CiviliaNext(); 32 break; 33 } 34 35} 36 37/* dedanext_civilianext */ 38async function initDedaNext_CiviliaNext() { 39 var cookieName = "sid"; 40 var myCookieName = "wp_comuni_token"; 41 42 if(checkCookieNameExist(cookieName)) { 43 44 var cookieLogin = getCookieValue(myCookieName); 45 if(cookieLogin != undefined) { 46 47 var item = sessionStorage.getItem("id-" + cookieLogin); 48 if( item ) { 49 var response = JSON.parse(item); 50 if(response?.html != undefined && document.getElementById("userContainer") != null) { 51 document.getElementById("userContainer").innerHTML = response?.html; 52 } 53 } else { 54 await checkUserAjaxCall(); 55 } 56 57 } else { 58 59 // var item = sessionStorage.getItem("id-"); 60 // if( item ) { 61 // var response = JSON.parse(item); 62 // if(response?.html != undefined && document.getElementById("userContainer") != null) { 63 // document.getElementById("userContainer").innerHTML = response?.html; 64 // } 65 // } else { 66 await checkUserAjaxCall(); 67 // } 68 69 } 70 71 } else { 72 73 var item = sessionStorage.getItem("id-"); 74 if( item ) { 75 var response = JSON.parse(item); 76 if(response?.html != undefined && document.getElementById("userContainer") != null) { 77 document.getElementById("userContainer").innerHTML = response?.html; 78 } 79 } else { 80 await checkUserAjaxCall(); 81 } 82 83 } 84} 85 86/* engineering_muniiam */ 87async function initEngineering_MuniIAM() { 88 var cookieName = "sid"; 89 var myCookieName = "wp_comuni_token"; 90 91 if(checkCookieNameExist(cookieName)) { 92 93 var cookieLogin = getCookieValue(myCookieName); 94 if(cookieLogin != undefined) { 95 96 var item = sessionStorage.getItem("id-" + cookieLogin); 97 if( item ) { 98 var response = JSON.parse(item); 99 if(response?.html != undefined && document.getElementById("userContainer") != null) { 100 document.getElementById("userContainer").innerHTML = response?.html; 101 } 102 } else { 103 await checkUserAjaxCall(); 104 } 105 106 } else { 107 108 // var item = sessionStorage.getItem("id-"); 109 // if( item ) { 110 // var response = JSON.parse(item); 111 // if(response?.html != undefined && document.getElementById("userContainer") != null) { 112 // document.getElementById("userContainer").innerHTML = response?.html; 113 // } 114 // } else { 115 await checkUserAjaxCall(); 116 // } 117 118 } 119 120 } else { 121 122 var item = sessionStorage.getItem("id-"); 123 if( item ) { 124 var response = JSON.parse(item); 125 if(response?.html != undefined && document.getElementById("userContainer") != null) { 126 document.getElementById("userContainer").innerHTML = response?.html; 127 } 128 } else { 129 await checkUserAjaxCall(); 130 } 131 132 } 133} 134 135/* potess_iam */ 136async function initPotess_IAM() { 137 // var cookieName = "sid"; 138 var myCookieName = "wp_comuni_token"; 139 var cookieIamLogged = "iam_logged"; 140 141 // console.log("window.location.host", window.location.host); 142 // console.log("window.ajaxObject.ajaxurl", window.ajaxObject.ajaxurl); 143 // console.log("window.ajaxObject.ajaxurl.indexOf(window.location.host)", window.ajaxObject.ajaxurl.indexOf(window.location.host)); 144 145 // se mi sono loggato su un verticale e quindi non ho cookie sid 146 if(simpleCheckCookieNameExist(cookieIamLogged) && !simpleCheckCookieNameExist(myCookieName) && window.ajaxObject.ajaxurl.indexOf(window.location.host) > -1){ 147 // console.log("iam ok, no sid"); 148 window.location.href = "/area-personale/login/spid"; 149 return; 150 } 151 152 if(simpleCheckCookieNameExist(myCookieName) && !simpleCheckCookieNameExist(cookieIamLogged)){ 153 // console.log("iam ok, no sid"); 154 window.location.href = "/area-personale/logout"; 155 return; 156 } 157 158 if(simpleCheckCookieNameExist(myCookieName)) { 159 160 // var cookieLogin = getCookieValue(myCookieName); 161 // if(cookieLogin != undefined) { 162 163 // var item = sessionStorage.getItem("id-" + cookieLogin); 164 // if( item ) { 165 // var response = JSON.parse(item); 166 // if(response?.html != undefined && document.getElementById("userContainer") != null) { 167 // document.getElementById("userContainer").innerHTML = response?.html; 168 // } 169 // } else { 170 // await checkUserAjaxCall(); 171 // } 172 173 // } else { 174 await checkUserAjaxCallNoSessionStorage(); 175 // } 176 177 } else { 178 179 var item = sessionStorage.getItem("id-"); 180 if( item ) { 181 var response = JSON.parse(item); 182 if(response?.html != undefined && document.getElementById("userContainer") != null) { 183 document.getElementById("userContainer").innerHTML = response?.html; 184 } 185 } else { 186 await checkUserAjaxCallNoSessionStorage(); 187 } 188 189 } 190} 191 192/* maggioli_authservice */ 193async function initMaggioli_AuthService() { 194 195 await checkUserIsLoggedInAjaxCall(); 196 197 // console.log("isuserloggedin",isUserLoggedIn); 198 199 // se sono loggato, controllo tutti i link e se puntano al portale esterno li mando li tramite la pagina sso-portale 200 if(isUserLoggedIn) { 201 maggioli_checkUrlToRedirect(); 202 } 203 204 if(isUserLoggedIn){ 205 var cookieName = "sid"; 206 var myCookieName = "wp_comuni_token"; 207 208 if(checkCookieNameExist(cookieName)) { 209 210 var cookieLogin = getCookieValue(myCookieName); 211 if(cookieLogin != undefined) { 212 213 var item = sessionStorage.getItem("id-" + cookieLogin); 214 if( item ) { 215 var response = JSON.parse(item); 216 if(response?.html != undefined && document.getElementById("userContainer") != null) { 217 document.getElementById("userContainer").innerHTML = response?.html; 218 } 219 } else { 220 await checkUserAjaxCall(); 221 } 222 223 } else { 224 225 // var item = sessionStorage.getItem("id-"); 226 // if( item ) { 227 // var response = JSON.parse(item); 228 // if(response?.html != undefined && document.getElementById("userContainer") != null) { 229 // document.getElementById("userContainer").innerHTML = response?.html; 230 // } 231 // } else { 232 await checkUserAjaxCall(); 233 // } 234 235 } 236 237 } else { 238 239 var item = sessionStorage.getItem("id-"); 240 if( item ) { 241 var response = JSON.parse(item); 242 if(response?.html != undefined && document.getElementById("userContainer") != null) { 243 document.getElementById("userContainer").innerHTML = response?.html; 244 } 245 } else { 246 await checkUserAjaxCall(); 247 } 248 249 } 250 251 } else { 252 253 var item = sessionStorage.getItem("id-"); 254 if( item ) { 255 var response = JSON.parse(item); 256 if(response?.html != undefined && document.getElementById("userContainer") != null) { 257 document.getElementById("userContainer").innerHTML = response?.html; 258 } 259 } else { 260 await checkUserAjaxCall(); 261 } 262 263 } 264} 265function maggioli_checkUrlToRedirect() { 266 267 const listItems = document.querySelectorAll('#userContainer li a.list-item'); 268 if (listItems.length <= 0) { 269 // console.log("rilancio funzione " + Math.random()); 270 setTimeout(maggioli_checkUrlToRedirect, 10); 271 return; 272 } 273 274 var targetDomain = ajaxObject.urlPortale.toLowerCase(); 275 var redirectUrl = ajaxObject.urlToOverride; 276 277 // console.log("targetDomain", targetDomain); 278 // console.log("redirectUrl", redirectUrl); 279 280 var links = document.querySelectorAll('a'); 281 282 links.forEach(function(link) { 283 // console.log(link.href); 284 // console.log(link.href.toLowerCase().indexOf(targetDomain)); 285 if(link.href && link.href.toLowerCase().indexOf(targetDomain) > -1){ 286 link.addEventListener('click', function(event) { 287 event.preventDefault(); 288 window.location.href = redirectUrl + link.href; 289 }); 290 } 291 });
292} 293 294/* anthesi_helixforms */ 295async function initAnthesi_HelixForms() { 296 297 var cookieName = "sid"; 298 var myCookieName = "wp_comuni_token"; 299 300 if(checkCookieNameExist(cookieName)) { 301 302 var cookieLogin = getCookieValue(myCookieName); 303 if(cookieLogin != undefined) { 304 305 var item = sessionStorage.getItem("id-" + cookieLogin); 306 if( item ) { 307 var response = JSON.parse(item); 308 if(response?.html != undefined && document.getElementById("userContainer") != null) { 309 document.getElementById("userContainer").innerHTML = response?.html; 310 } 311 } else { 312 await checkUserAjaxCall(); 313 } 314 315 } else { 316 317 // var item = sessionStorage.getItem("id-"); 318 // if( item ) { 319 // var response = JSON.parse(item); 320 // if(response?.html != undefined && document.getElementById("userContainer") != null) { 321 // document.getElementById("userContainer").innerHTML = response?.html; 322 // } 323 // } else { 324 await checkUserAjaxCall(); 325 // } 326 327 } 328 329 } else { 330 331 var item = sessionStorage.getItem("id-"); 332 if( item ) { 333 var response = JSON.parse(item); 334 if(response?.html != undefined && document.getElementById("userContainer") != null) { 335 document.getElementById("userContainer").innerHTML = response?.html; 336 } 337 } else { 338 await checkUserAjaxCall(); 339 } 340 341 } 342} 343 344/* funzioni generiche */ 345function extractTopLevelDomain(domain = ""){ 346 if(!domain){ 347 domain = window.location.hostname; 348 } 349 var returnDomain = ""; 350 var returnDomainArray = []; 351 var splittedDomain = domain.split(".").reverse(); 352 353 if(splittedDomain.length > 0) { 354 var isDominioComunale = splittedDomain.includes("comune", 2); 355 if(isDominioComunale) { 356 for(var i = 0; i <= splittedDomain.length; i++){ 357 returnDomainArray.push(splittedDomain[i]); 358 if(splittedDomain[i] == "comune") 359 break; 360 } 361 } else { 362 for(var i = 0; i <= splittedDomain.length; i++){ 363 if(i == 0) { 364 returnDomainArray.push(splittedDomain[i]); 365 continue; 366 } 367 if(splittedDomain[i].length <= 3) { 368 returnDomainArray.push(splittedDomain[i]); 369 continue; 370 } 371 if(splittedDomain[i].length > 3) { 372 returnDomainArray.push(splittedDomain[i]); 373 break; 374 } 375 } 376 } 377 } 378 379 returnDomain = returnDomainArray.reverse().join("."); 380 381 return returnDomain; 382} 383 384function checkCookieNameExist(cookieName) 385{ 386 // se il cookie esiste già ritorno semplicemente true 387 var existCookie = document.cookie.indexOf(cookieName + '=') != -1; 388 if(existCookie) 389 return existCookie; 390 391 // se il cookie esiste, ma non è possibile prendere il valore, lo creo e lo rimuovo 392 var topLevelDomain = extractTopLevelDomain(); 393 var domain = "domain=." + topLevelDomain; 394 395 var d = new Date(); 396 d.setTime(d.getTime() + (1000)); 397 var expires = "expires=" + d.toUTCString(); 398 399 document.cookie = cookieName + "=new_value;path=/;" + expires + ";" + domain + ";"; 400 401 var exist = document.cookie.indexOf(cookieName + '=') == -1; 402 403 var expires2 = "expires=Thu, 01 Jan 1970"; 404 document.cookie = cookieName + "=;path=/;" + expires2 + ";" + domain + ";"; 405 406 return exist; 407} 408function simpleCheckCookieNameExist(cookieName) { 409 return document.cookie 410 .split(';') 411 .map(c => c.trim()) 412 .some(c => c.startsWith(cookieName + "=")); 413} 414 415function getCookieValue(name) 416{ 417 const regex = new RegExp(`(^| )${name}=([^;]+)`); 418 const match = document.cookie.match(regex); 419 if (match) { 420 return match[2]; 421 } 422} 423 424async function checkUserIsLoggedInAjaxCall() 425{ 426 // console.log("oooook"); 427 // await new Promise(resolve => setTimeout(resolve, 10000)); 428 // console.log("oooook 10 sec"); 429 430 try { 431 var dataObj = new FormData(); 432 dataObj.append( 'action', 'check_user_is_logged_in' ); 433 434 const response = await fetch(ajaxObject.ajaxurl, { 435 method: 'POST', 436 body: dataObj 437 }); 438 if (!response.ok) { 439 console.log("response not ok", response); 440 } 441 const data = await response.json(); 442 443 isUserLoggedIn = data?.isUserLoggedIn; 444 } catch (error) { 445 console.error("error", error); 446 } 447} 448async function checkUserAjaxCall() 449{ 450 try { 451 var dataObj = new FormData(); 452 dataObj.append( 'action', 'check_user' ); 453 454 const response = await fetch(ajaxObject.ajaxurl, { 455 method: 'POST', 456 body: dataObj 457 });
458 if (!response.ok) { 459 console.log("response not ok", response); 460 } 461 const data = await response.json(); 462 if(data?.html != undefined) { 463 var idResponse = data?.currentUser?.Id ? data?.currentUser?.Id : ""; 464 sessionStorage.setItem("id-" + idResponse, JSON.stringify(data)); 465 if(document.getElementById("userContainer") != null) 466 document.getElementById("userContainer").innerHTML = data?.html; 467 } 468 469 } catch (error) { 470 console.error("error", error); 471 } 472} 473async function checkUserAjaxCallNoSessionStorage() 474{ 475 try { 476 var dataObj = new FormData(); 477 dataObj.append( 'action', 'check_user' ); 478 479 const response = await fetch(ajaxObject.ajaxurl, { 480 method: 'POST', 481 body: dataObj 482 }); 483 if (!response.ok) { 484 console.log("response not ok", response); 485 } 486 const data = await response.json(); 487 if(data?.html != undefined) { 488 // var idResponse = data?.currentUser?.Id ? data?.currentUser?.Id : ""; 489 // sessionStorage.setItem("id-" + idResponse, JSON.stringify(data)); 490 if(document.getElementById("userContainer") != null) 491 document.getElementById("userContainer").innerHTML = data?.html; 492 } 493 494 } catch (error) { 495 console.error("error", error); 496 } 497}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.