partial implementation of new fieldified preferences system
[brisk.git] / web / Obj / brisk.phh
index 4592179..a903589 100644 (file)
@@ -153,13 +153,14 @@ $mlang_brisk = array( 'btn_backstand'=> array( 'it' => 'torna in piedi',
 $G_lng = langtolng($G_lang);
 
 $G_all_points = array( 11,10,4,3,2, 0,0,0,0,0 );
-$G_brisk_version = "5.1.3";
+$G_brisk_version = "5.2.1";
 
 /* MLANG: ALL THE INFO STRINGS IN brisk.phh */
-$root_wellarr = array( 'it' => array ( 'Brisk (Ver. '.$G_brisk_version.'), <b>NOVITA\'</b>: comando /info e doppio click sugli utenti registrati, nuovi utenti apprendisti, info su numero di mani e di partite.',
+$root_wellarr = array( 'it' => array ( 'Brisk (Ver. '.$G_brisk_version.'), <b>NOVITA\'</b>: puoi creare la tua rete di amicizie con /info, vedere cosa pensano i tuoi amici degli altri utenti e ci sono i nuovi tavoli riservati per registrati e apprendisti, corretti alcuni errori.',
                                        'Se vuoi iscriverti alla <a target="_blank" href="mailto:ml-briscola+subscribe@milug.org">Mailing List</a>, cliccala!' ),
-                       'en' => array ( 'Brisk (Ver. '.$G_brisk_version.'), <b>NEWS</b>: ENcomando /info e doppio click sugli utenti registrati, nuovi utenti apprendisti.',
-                                       'If you want to subscribe our <a target="_blank" href="ml-briscola+subscribe@milug.org">Mailing List</a>, click it!' ) );
+                       'en' => array ( 'EN Brisk (Ver. '.$G_brisk_version.'), <b>NOVITA\'</b>: puoi creare la tua rete di amicizie con /info,',
+                                       'vedere cosa pensano i tuoi amici degli altri utenti e tavoli riservati per registrati e apprendisti.',
+                                       'Se vuoi iscriverti alla <a target="_blank" href="mailto:ml-briscola+subscribe@milug.org">Mailing List</a>, cliccala!' ) );
 
 $G_room_help = array( 'it' => '
 <div style=\\"text-align: left; padding: 8px;\\">
@@ -1415,19 +1416,13 @@ class Brisk
 
     $ret = sprintf('gst.st = %d; ',  $user_step);
 
-    $prefs = Client_prefs::from_user($user);
-    $ret .= sprintf('prefs_load(\'%s\', false, false);', json_encode($prefs));
-
-    if(false) {
-        if ($user->flags & USER_FLAG_ISOLAUTH) {
-            $ret .= 'list_set(\'isolation\', false, \''.$mlang_brisk['tit_onisol'][$G_lang].'\' ); ';
-        }
-        else if ($user->flags & USER_FLAG_LISTAUTH) {
-            $ret .= 'list_set(\'auth\', false, \''.$mlang_brisk['tit_onauth'][$G_lang].'\' ); ';
-        }
-        else {
-            $ret .= 'list_set(\'all\', false, \'\' ); ';
-        }
+    if ($user->is_auth()) {
+        $model = '{ "listen": { "__type": "radio" } }';
+        $content = '{ "listen": {"val": "' . ($user->flags & USER_FLAG_ISOLAUTH ? "2" :
+                                              ($user->flags & USER_FLAG_LISTAUTH ? "1" : "0")) .
+            '" } }';
+        $ret .= sprintf('g_prefsf.fields_descr_set(JSON.parse(\'%s\'));', $model);
+        $ret .= sprintf('g_prefsf.json2dom(JSON.parse(\'%s\'));', $content);
     }
 
     if ($user->subst == 'standup')
@@ -1693,6 +1688,8 @@ class Brisk
           }
           $user_tos_vers = $user_item->tos_vers_get();
 
+          $partyskill = $bdb->usersnet_partyskill($user->code, $user_item->code);
+
           $widefriend = $bdb->usersnet_widefriend($user->code, $user_item->code);
           $widefriend['skill'] = $bdb->usersnet_wideskill($user->code, $user_item->code);
           $narrowfriend = $bdb->usersnet_narrowfriend($user->code, $user_item->code);
@@ -1731,6 +1728,7 @@ class Brisk
                                        "Normale" : "Stato sconosciuto"))),
                                     "guar" => ($user_item->type & USER_FLAG_TY_APPR ?
                                                "" : $guar_login),
+                                    "party" => $partyskill,
                                     "match" => (versions_cmp($user_tos_vers, "1.4") < 0 ? "non autorizzato" : $user_item->match_cnt) ,
                                     "game" => (versions_cmp($user_tos_vers, "1.4") < 0 ? "non autorizzato" : $user_item->game_cnt),
                                     "friend" => usersnet_friend_getlabel($usersnet_item->friend),
@@ -1919,7 +1917,7 @@ class Brisk
       return ($this->kickuser($user_out, $out_reas));
   }
 
-  function chatt_send($user, $mesg)
+  function chatt_send($user, $mesg, $mlang_indwr = NULL)
   {
     GLOBAL $G_base, $G_alarm_passwd, $mlang_brisk, $G_lang;
     $only_you = FALSE;
@@ -2133,9 +2131,34 @@ class Brisk
       } while (0);
     } // nick chat command
     else if (strncmp($msg, "/info ", 6) == 0) {
-        $info_user = substr($msg, 6);
+        do {
+            if (! $user->is_auth()) {
+                if ($mlang_indwr) {
+                    $to_user = nickserv_msg($dt, $mlang_indwr['info_auth'][$G_lang]);
+                }
+                else {
+                    $to_user = nickserv_msg($dt, "error");
+                }
+                break;
+            }
+            $info_user = substr($msg, 6);
 
-        echo $this->info_show($user, urldecode($info_user), $dt);
+            echo $this->info_show($user, urldecode($info_user), $dt);
+        } while(0);
+    }
+    else if (strncmp($msg, "/prefsn", 7) == 0) {
+        do {
+            if (! $user->is_auth()) {
+                if ($mlang_indwr) {
+                    $to_user = nickserv_msg($dt, $mlang_indwr['info_auth'][$G_lang]);
+                }
+                else {
+                    $to_user = nickserv_msg($dt, "error");
+                }
+                break;
+            }
+            echo $this->prefsn_show($user, $dt);
+        } while(0);
     }
     else if (strncmp($msg, "/st ", 4) == 0) {
       log_main("chatt_send BEGIN");
@@ -2418,7 +2441,7 @@ class Brisk
         $bdb->users_load();
         if ($pass != FALSE) { // TODO: here add a method to $bdb to check if the db is available.
             log_auth("XXX", "auth2");
-            $authenticate = $bdb->login_verify(strtolower($name_new), $pass, $code);
+            $authenticate = $bdb->login_verify($name_new, $pass, $code);
             log_auth("XXX", "authenticate: ".($authenticate != FALSE ? "TRUE" : "FALSE"));
 
             if ($authenticate != FALSE) {
@@ -3525,6 +3548,9 @@ function carousel_top()
     }
 }
 
+/* function login_consistency:
+       name length must be less or equal than 12 chars,
+       no more than 2 consecutive same character (or generic digits) are allowed */
 function login_consistency($name)
 {
     $old_c = '';
@@ -3535,6 +3561,9 @@ function login_consistency($name)
     for ($i = 0 ; $i < mb_strlen($name) ; $i++) {
         $c = mb_substr($name, $i, 1);
         if (mb_ereg_match ("[a-zA-Z0-9]", $c)) {
+            if (mb_ereg_match ("[0-9]", $c)) {
+                $c = "0";
+            }
             if ($old_c != $c) {
                 $old_c = $c;
                 $old_ct = 1;