new login consistency constraint added (no more than 2 consecutive same char or digits)
authorMatteo Nastasi (mop) <nastasi@alternativeoutput.it>
Thu, 7 Jan 2016 18:19:45 +0000 (19:19 +0100)
committerMatteo Nastasi (mop) <nastasi@alternativeoutput.it>
Thu, 7 Jan 2016 18:19:45 +0000 (19:19 +0100)
TODO.txt
web/Obj/brisk.phh
web/index.php
web/room.js

index 3c1bad3..02efef5 100644 (file)
--- a/TODO.txt
+++ b/TODO.txt
@@ -1,13 +1,34 @@
  TODO |
 ------+
 
+  BUGS |
+ ------+
+   - usermgmt: add user delete (with mail)
+   DONE - constraint on username (no more than 2 consecutive digits)
+   - manage isolation consistently
+
+  FEATURES |
+ ----------+
+   * Users Network construction
+     - minisplash at end of the match
+     - differentiate table authorization
+   * add new kind of isolation for apprentice
+
+   * Double click on chat to open preferences
+
+   * APPRENTICE
+     Phase2
+     DONE - match counters (part 2)
+       DONE . migration script for old users
+     - guarantee for apprentice
+
+
+
   BUGS |
  ------+
    DONE - Not sequence of 3 same chars
    DONE   . check server side with test
    DONE - Global vars checker
-   <release>
-   - usermgmt: add user delete
    DONE - 10002 message when already clicked
    DONE - trim spaces in apprentice form
    DONE - Remove books from chat
@@ -16,7 +37,7 @@
 
   FEATURES |
  ----------+
-   WIP * inherited info
+   * inherited info
    * Users Network construction
      DONE - sql
      DONE - dbase API
index f971277..e3abaa9 100644 (file)
@@ -3540,6 +3540,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 = '';
@@ -3550,6 +3553,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;
index 73ebd17..7513dbb 100644 (file)
@@ -1137,7 +1137,7 @@ window.onload = function() {
              <div id="apprentice_div" style="display: none;" class="apprentice">
          <br>
          Inserisci il tuo nickname e il tuo indirizzo e-mail.<br>
-         Il tuo nickname non può essere più lungo di 12 caratteri,<br>deve essere composto soltanto da lettere non accentate e numeri,<br>senza ripetere lo stesso carattere per più di 3 volte consecutive.<br><br>
+         Il tuo nickname non può essere più lungo di 12 caratteri,<br>deve essere composto soltanto da lettere non accentate e numeri,<br>senza ripetere più di due volte lo stesso carattere (o delle cifre) consecutivamente.<br><br>
     <form accept-charset="utf-8" method="post" action="" onsubmit="return j_new_apprentice(this);">
     <input type="hidden" name="realsub" value="666">
     <table class="login">
index 26d78e9..e914fbf 100644 (file)
@@ -491,6 +491,8 @@ function j_tab_act_cont(idx, act)
 
 function j_check_login(login, ret)
 {
+    var cmp;
+
     if (login.length > 12) {
         // FIXME LANG
         ret.ret += (g_lang == 'en' ? "Nickname too long." : "Nickname troppo lungo.");
@@ -502,15 +504,24 @@ function j_check_login(login, ret)
         if ((login[i] >= '0' && login[i] <= '9') ||
             (login[i] >= 'a' && login[i] <= 'z') ||
             (login[i] >= 'A' && login[i] <= 'Z')) {
-            if (old_c != login[i]) {
-                old_c = login[i];
+            if (login[i] >= '0' && login[i] <= '9')
+                cmp = '0';
+            else
+                cmp = login[i];
+
+            if (old_c != cmp) {
+                old_c = cmp;
                 old_ct = 1;
             }
             else {
                 if (old_ct > 2) {
                     // FIXME LANG
-                    ret.ret = (g_lang == 'en' ? "More than two contiguous '" + old_c + "' not allowed." :
-                               "Il nickname contiene più di 2 caratteri '" + old_c + "' consecutivi.");
+                    if (old_c == '0')
+                        ret.ret = (g_lang == 'en' ? "More than two contiguous digits not allowed." :
+                                   "Il nickname contiene più di 2 cifre consecutive.");
+                    else
+                        ret.ret = (g_lang == 'en' ? "More than two contiguous '" + old_c + "' not allowed." :
+                                   "Il nickname contiene più di 2 caratteri '" + old_c + "' consecutivi.");
                     return (false);
                 }
             }