cookie law management
[brisk.git] / web / index.php
index 9486808..7848aa5 100644 (file)
 require_once("Obj/user.phh");
 require_once("Obj/brisk.phh");
 require_once("Obj/auth.phh");
-require_once("Obj/proxyscan.phh");
 
-$mlang_room = array( 'userpasserr'  => array('it' => 'Utente e/o password errati.',
-                                             'en' => 'Wrong user and/or password.'),
-                     'userpassmust' => array('it' => 'Il nickname deve contenere almeno una lettera o una cifra.',
-                                             'en' => 'The nickname have to contain at least one letter or one number.'),
+$mlang_room = array( 'userpassuse'  => array('it' => 'Il tuo nickname è già in uso.',
+                                             'en' => 'Your nickname is already in use.'),
                      'userpassend'  => array('it' => 'Spiacenti, non ci sono più posti liberi. Riprova più tardi.',
                                              'en' => 'We are sorry, there aren\'t free place. Try again later.'),
-                     'userpassuse'  => array('it' => 'Il tuo nickname è già in uso.',
-                                             'en' => 'Your nickname is already in use.'),
+                     'userpassmust' => array('it' => 'Il nickname deve contenere almeno una lettera o una cifra.',
+                                             'en' => 'The nickname have to contain at least one letter or one number.'),
+                     'userpasserr'  => array('it' => 'Utente e/o password errati.',
+                                             'en' => 'Wrong user and/or password.'),
+                     'userpassban'  => array('it' => 'Il tuo indirizzo IP è stato bannato perché precedentemente utilizzato da qualche molestatore.',
+                                             'en' => 'Your IP address is banned because trolling activity was detected from it.'),
                      'standing'     => array('it' => 'Giocatori in piedi',
                                              'en' => 'Standing players'),
                      'headline'     => array('it' => 'briscola chiamata in salsa ajax',
@@ -51,8 +52,13 @@ $mlang_room = array( 'userpasserr'  => array('it' => 'Utente e/o password errati
                                              'en' => 'EN Abbiamo perso le tue tracce mentre stavi giocando, quindi ti abbiamo disconnesso.'),
                      'reas_anon'    => array('it' => 'L\' accesso attraverso sistemi di anonimizzazione non è consentito.',
                                              'en' => 'EN L\' accesso attraverso sistemi di anonimizzazione non è consentito.'),
+                     'reas_prox'    => array('it' => 'L\' accesso attraverso proxy non è consentito, se lo usi solo tu e pochi altri utenti comunica il suo indirizzo IP all\' <a href="mailto: brisk@alternativeoutput.it">amministratore</a> per aggiungerlo alle eccezioni.',
+                                             'en' => 'EN L\' accesso attraverso proxy non è consentito, se lo usi solo tu e pochi altri utenti comunica il suo indirizzo IP all\' <a href="mailto: brisk@alternativeoutput.it">amministratore</a> per aggiungerlo alle eccezioni.'),
                      'reas_anot'    => array('it' => 'La tua sessione è stata assegnata ad un altro browser.',
                                              'en' => 'EN La tua sessione è stata assegnata ad un altro browser.'),
+                     'reas_cloud'   => array('it' => 'La connessione dai computer di una cloud non è ammessa.',
+                                             'en' => 'Connection from cloud computers is not allowed.'),
+
                      'btn_enter'    => array('it' => 'entra',
                                              'en' => 'enter'),
                      'passwarn'     => array('it' => 'Se non hai ancora una password, lascia il campo in bianco ed entra.',
@@ -194,6 +200,10 @@ $mlang_room = array( 'userpasserr'  => array('it' => 'Utente e/o password errati
                                              'en' => 'contacts'),
                      'itm_mail'     => array('it' => 'contatti',
                                              'en' => 'contacts'),
+                     'tit_cook'      => array('it' => 'policy sui cookie',
+                                              'en' => 'cookie policy'),
+                     'itm_cook'      => array('it' => 'cookie',
+                                              'en' => 'cookie'),
                      'tit_cla'      => array('it' => 'classifiche degli utenti',
                                              'en' => 'user\'s placings'),
                      'itm_cla'      => array('it' => 'classifiche',
@@ -304,7 +314,13 @@ function sidebanners_render($sidebanner, $sidebanner_idx)
         $tit = eschtml($sb['title']);
         printf('  alt="%s" title="%s"></a></div>', $tit, $tit);
         printf("\n");
-        printf('<img class="nobohide" style="z-index: 255; border: 1px solid gray;" id="sidebanner%d_big" src="%s">', $i, $sb['icon_big']);
+
+        $ib_class =  "";
+        if (array_key_exists('icon_big_class', $sb)) {
+            $ib_class = $sb['icon_big_class'];
+        }
+
+        printf('<img class="nobohide bordergray %s" style="z-index: 255;" id="sidebanner%d_big" src="%s">', $ib_class, $i, $sb['icon_big']);
         printf("\n");
     }
 }
@@ -316,7 +332,7 @@ function index_main(&$brisk, $transp_type, $header, &$header_out, $remote_addr_f
     GLOBAL $G_sidebanner, $G_sidebanner_idx;
     GLOBAL $G_with_poll;
     GLOBAL $G_lang, $G_lng, $mlang_room;
-    GLOBAL $BRISK_SHOWHTML, $BRISK_DEBUG, $_SERVER;
+    GLOBAL $BRISK_SHOWHTML, $BRISK_DEBUG, $_SERVER, $_COOKIE;
 
     if (($sess = gpcs_var('sess', $get, $post, $cookie)) === FALSE)
         $sess = "";
@@ -329,12 +345,14 @@ function index_main(&$brisk, $transp_type, $header, &$header_out, $remote_addr_f
     if (($table_token = gpcs_var('table_idx', $get, $post, $cookie)) === FALSE)
         unset ($table_token);
 
-    $remote_addr = addrtoipv4($remote_addr_full);
+    log_step("LOGIN: $name");
 
-    // Use of proxies isn't allowed.
-    if (!$G_is_local && is_proxy($remote_addr)) {
-        return FALSE;
-    }
+    // default values
+    $_cookie_law_3party = 'true';
+    if (isset($cookie['_cookie_law_3party']))
+        $_cookie_law_3party = $cookie['_cookie_law_3party'];
+
+    $remote_addr = addrtoipv4($remote_addr_full);
 
     $is_login = FALSE;
     $body = "";
@@ -342,6 +360,7 @@ function index_main(&$brisk, $transp_type, $header, &$header_out, $remote_addr_f
     $standup = "";
     $ACTION = "login";
     $last_msg = "";
+    $banned = FALSE;
 
     if (isset($BRISK_SHOWHTML) == FALSE) {
         $is_table = FALSE;
@@ -366,11 +385,21 @@ function index_main(&$brisk, $transp_type, $header, &$header_out, $remote_addr_f
             case GHOST_SESS_REAS_ANON:
                 $last_msg = $mlang_room['reas_anon'][$G_lang];
                 break;
+            case GHOST_SESS_REAS_PROX:
+                $last_msg = $mlang_room['reas_prox'][$G_lang];
+                break;
             default:
                 $last_msg = $mlang_room['reas_unkn'][$G_lang];
                 break;
             }
         }
+        if ($brisk->cloud_check($remote_addr)) {
+            // TODO: find a way to add a nonblocking sleep(5) here
+            $banned = TRUE;
+            $last_msg = $mlang_room['reas_cloud'][$G_lang];
+        }
+
+
         if (validate_sess($sess)) {
             log_main("pre garbage_manager UNO");
             $brisk->garbage_manager(TRUE);
@@ -391,9 +420,7 @@ function index_main(&$brisk, $transp_type, $header, &$header_out, $remote_addr_f
                 }
             }
         }
-
-        $banned = FALSE;
-        if ($ACTION == "login" && isset($name)) {
+        if (!$banned && $ACTION == "login" && isset($name)) {
             log_main("pre garbage_manager DUE");
 
             if (isset($pass_private) == FALSE || $pass_private == "") {
@@ -402,7 +429,7 @@ function index_main(&$brisk, $transp_type, $header, &$header_out, $remote_addr_f
                 if ($brisk->ban_check($remote_addr)) {
                     // TODO: find a way to add a nonblocking sleep(5) here
                     $banned = TRUE;
-                    $idx = -1;
+                    $idx = -4;
                 }
             }
 
@@ -432,15 +459,24 @@ function index_main(&$brisk, $transp_type, $header, &$header_out, $remote_addr_f
                 }
             }
             else {
+                fprintf(STDERR, "POST CHECK QUI\n");
                 /* Login Rendering */
-                if ($idx == -3)
+                switch($idx) {
+                case -4:
+                    $sfx = 'ban';
+                    break;
+                case -3:
                     $sfx = 'err';
-                else if ($idx == -2)
+                    break;
+                case -2:
                     $sfx = 'must';
-                else if ($idx == -1)
+                    break;
+                case -1:
                     $sfx = 'end';
-                else
+                    break;
+                default:
                     $sfx = 'use';
+                }
 
                 $body .= '<div class="urgmsg"><b>'.$mlang_room['userpass'.$sfx][$G_lang].'</b></div>';
             }
@@ -568,7 +604,7 @@ function index_main(&$brisk, $transp_type, $header, &$header_out, $remote_addr_f
     /* MLANG: "briscola chiamata in salsa ajax", */
 
     mt_srand(make_seed());
-    if (!$G_is_local) {
+    if (!$G_is_local && $_cookie_law_3party == 'true') {
         $rn = rand(0, 1);
 
         if ($rn == 0) {
@@ -681,6 +717,10 @@ google_color_url = "000000";
    onmouseover="menu_hide(0,1);"
    title="'.$mlang_room['tit_mail'][$G_lang].'">'.$mlang_room['itm_mail'][$G_lang].'</a><br>
 
+<a target="_blank" href="http://www.alternativeoutput.it/cookie.php"
+   onmouseover="menu_hide(0,1);"
+   title="'.$mlang_room['tit_cook'][$G_lang].'"
+   alt="'.$mlang_room['tit_cook'][$G_lang].'">'.$mlang_room['itm_cook'][$G_lang].'</a><br>
 <hr>
 
 <!--
@@ -932,10 +972,9 @@ supported by:<br>
 </div>
 <a style="/* position: absolute; top: 40px; left: 6px;" */ target="_blank" href="http://it-it.facebook.com/group.php?gid=59742820791"><img class="nobo" id="btn_facebook" src="img/facebook_btn.png" title="unisciti al gruppo \'quelli della brisk\'"></a>
 ' . ( /* NOTE: here facebook or fake facebook */
-! $G_is_local ?
+(!$G_is_local && $_cookie_law_3party == 'true') ?
 '<div class="fb-like" style="margin-top: 4px;" data-href="https://www.facebook.com/pages/Brisk-briscola-chiamata-in-salsa-ajax/716026558416911" data-share="false" data-send="true" data-width="70" data-show-faces="false" data-colorscheme="dark" layout="button_count"></div>
-' : '<div style="margin-top: 4px; height: 20px; background-color: #00f;">FACEBOOK HERE</div>
-' ) . '<div id="proflashext" class="proflashext"><div id="proflash" class="proflash"></div></div>
+' : '' ) . '<div id="proflashext" class="proflashext"><div id="proflash" class="proflash"></div></div>
 <img id="stm_stat" class="nobo" style="margin-top: 4px;" src="img/line-status_b.png">
 %s
 %s
@@ -962,6 +1001,8 @@ supported by:<br>
 <script type="text/javascript" src="md5.js"></script>
 <script type="text/javascript" src="probrowser.js"></script>
 <script type="text/javascript" src="json2.js"></script>
+<script type="text/javascript" src="/cookie_law.js"></script>
+<link rel="stylesheet" type="text/css" href="/cookie_law.css">
 <link rel="stylesheet" type="text/css" href="brisk.css">
 <link rel="stylesheet" type="text/css" href="room.css">
 
@@ -1013,7 +1054,7 @@ window.onload = function() {
 </script>
 </head>
 <?php
-        if (!$G_is_local) {
+        if (!$G_is_local && $_cookie_law_3party == 'true') {
 ?>
 <!-- if myconsole <body onunload="deconsole();"> -->
 <body xmlns:fb="http://ogp.me/ns/fb#">
@@ -1083,6 +1124,12 @@ window.onload = function() {
     <div id="xhrlog"></div>
     </pre>
     <div id="xhrdeltalog"></div>
+
+<script language="JavaScript">
+<!--
+cookie_law(null);
+// -->
+</script>
 </body>
 </html>
 <?php
@@ -1107,6 +1154,8 @@ window.onload = function() {
 <script type="text/javascript" src="AC_OETags.js"></script>
 <script type="text/javascript" src="probrowser.js"></script>
 <script type="text/javascript" src="json2.js"></script>
+<script type="text/javascript" src="/cookie_law.js"></script>
+<link rel="stylesheet" type="text/css" href="/cookie_law.css">
 <link rel="stylesheet" type="text/css" href="brisk.css">
 <link rel="stylesheet" type="text/css" href="room.css">
 <script type="text/javascript"><!--
@@ -1188,7 +1237,7 @@ xstm = new xynt_streaming(window, "<?php echo "$transp_type"; ?>", 80, 2, null /
 </script>
 </head>
 <?php
-    if (!$G_is_local) {
+    if (!$G_is_local && $_cookie_law_3party == 'true') {
 ?>
 <!-- if myconsole <body onunload="deconsole();"> -->
 <body xmlns:fb="http://ogp.me/ns/fb#">
@@ -1404,6 +1453,11 @@ type="submit" class="button" onclick="this.form.elements['realsub'].value = 'chi
 <input type="submit" class="input_sub" style="bottom: 4px;" onclick="prefs_save();" value="<?php echo $mlang_room['btn_prefs_save'][$G_lang]; ?>"/>
 </div>
 </div>
+<script language="JavaScript">
+<!--
+cookie_law(null);
+// -->
+</script>
 </body>
 </html>
 <?php