PageSourceSearch

https://static-www.comune.napoli.it/wp-content/themes/design-comun…/inc/integrazioni/assets/js/check_user.js

js comune.napoli.it collected 2026-09-24 08:50:10 UTC 13,883 bytes, 497 lines download raw bytes

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.