Eric a écrit:
Tout çà pour dire que, pour l'instant, je sèche... Mais je ne désespère pas ;-)
En espérant ne pas me répéter lourdement : qu'est-ce qui faisait que ça fonctionnait, dans les versions de UAM antérieures à $conf['insensitive_case_logon'] ? Car alors, l'insensibilité à la casse à l'identification fonctionnait ([Forum, post 158619 by LucMorizur in topic 19180] Insensible à la casse...).
Hors ligne
LucMorizur a écrit:
Une autre réflexion, à exploiter plutôt lorsque l'on sera plus avancés, mais bon je l'expose quand même maintenant : le "core" de Piwigo ne propose pour le moment l'insensibilité à la casse qu'à l'inscription. Ce comportement est à modifier, comme l'a indiqué plg sur le forum anglophone. Mais la méthode utilisée dans le "core" de Piwigo pour l'insensibilité à la casse, n'utilise pas la fonction LCAS_change_case, qu'on peut légitimement trouver peut-être un peu lourde ?
Certe, mais multi-aplabets et efficace
LucMorizur a écrit:
Je pense donc que nous devons :
_ résoudre le [Bugtracker] ticket 1835 en utilisant les mêmes méthodes que le "core" de Piwigo, pour les cas où $conf['insensitive_case_logon'] = false ;
-1
Les mêmes méthodes ? il faudrait utiliser LCAS_change_case('', 0 | 3)
LucMorizur a écrit:
_ [...] $conf['insensitive_case_logon'] = true .
LCAS_change_case('', 1 | 2)
LucMorizur a écrit:
Eric a écrit:
LucMorizur a écrit:
Je sais pas vraiment. Je pense que le fait de l'activer depuis le plugin peut être pas mal.
Ou alors faire en sorte que les options du plugin ne soient pas accessibles si $conf['insensitive_case_logon'] = false.
Oui, +1.
J'ai inversé les paragraphes....
J'suis également d'accord : +1
Mais comme ce qui avait été dit sur $conf['insensitive_case_logon'] = false ; contredit l'obligation qu'il soit à true....
Donc, soit j'ai pas capté un truc, soit les deux idées ne sont pas compatibles...
Hors ligne
LucMorizur a écrit:
Eric a écrit:
Tout çà pour dire que, pour l'instant, je sèche... Mais je ne désespère pas ;-)
En espérant ne pas me répéter lourdement : qu'est-ce qui faisait que ça fonctionnait, dans les versions de UAM antérieures à $conf['insensitive_case_logon'] ? Car alors, l'insensibilité à la casse à l'identification fonctionnait ([Forum, post 158619 by LucMorizur in topic 19180] Insensible à la casse...).
Je confirme que la sensibilité à la casse à l'identification n'était pas le fruit de UAM. Pour preuves:
L'option de sensibilité à la casse de UAM a été retirée du plugin dans la version 2.15.4. J'ai donc repris le code de la 2.15.3 : L'option de sensibilité à la casse de UAM ne s'appliquait que via le trigger register_user_check(). C'est à dire au niveau de l'inscription. La fonction appelée se nommait NotSensibleSearchUsername() et utilisait cette simple requête:
/* Function called from main.inc.php - Get username case insensitive */ function NotSensibleSearchUsername($username) { global $conf; if (isset($username)) { $query = " SELECT ".$conf['user_fields']['username']." FROM ".USERS_TABLE." WHERE LOWER(".stripslashes($conf['user_fields']['username']).") = '".strtolower($username)."' ;"; $users = pwg_db_num_rows(pwg_query($query)); if ($users > 0) { return true; } else { return false; } } }
Il est donc techniquement impossible que UAM soit l'instigateur de la sensibilité à la casse à l'identification. Et, si ce n'est pas lui, c'est donc le core de Piwigo ! UAM 2.15.3 étant donné compatible Piwigo 2.1.3 (et inférieures dans la branche 2.1), c'est dans la branche 2.1 de Piwigo qu'il faut rechercher ce qui a changé pour que la sensibilité à la casse ne s'effectue plus à l'identification.
Hors ligne
Whiler a écrit:
LucMorizur a écrit:
Une autre réflexion, à exploiter plutôt lorsque l'on sera plus avancés, mais bon je l'expose quand même maintenant : le "core" de Piwigo ne propose pour le moment l'insensibilité à la casse qu'à l'inscription. Ce comportement est à modifier, comme l'a indiqué plg sur le forum anglophone. Mais la méthode utilisée dans le "core" de Piwigo pour l'insensibilité à la casse, n'utilise pas la fonction LCAS_change_case, qu'on peut légitimement trouver peut-être un peu lourde ?
Certe, mais multi-aplabets et efficace
LucMorizur a écrit:
Je pense donc que nous devons :
_ résoudre le [Bugtracker] ticket 1835 en utilisant les mêmes méthodes que le "core" de Piwigo, pour les cas où $conf['insensitive_case_logon'] = false ;-1
Les mêmes méthodes ? il faudrait utiliser LCAS_change_case('', 0 | 3)
En parlant de "méthode", je voulais dire la façon de faire de Piwigo, pour activer l'insensibilité à la casse à l'inscription ; non pas méthode ≈ function au sens informatique. (Mais je ne suis pas sûr qu'il y ait eu confusion pour être honnête :-p !)
Eric, ton avis pour nous départager sur LCAS_change_case() versus strtolwer() lorsque $conf['insensitive_case_logon'] = false ?
Je pense aussi que LCAS_change_case() est plus complet que strtolower() , mais l'utiliser pour résoudre un bug est ÀMHA un peu exagéré. De plus, ça signifierait qu'il faudrait l'utiliser aussi pour l'insensibilité à la casse à l'inscription. Avis demandé à l'équipe.
Whiler a écrit:
LucMorizur a écrit:
_ [...] $conf['insensitive_case_logon'] = true .
LCAS_change_case('', 1 | 2)
J'ai inversé les paragraphes....
C'est-à-dire ??
Whiler a écrit:
J'suis également d'accord : +1
Mais comme ce qui avait été dit sur $conf['insensitive_case_logon'] = false ; contredit l'obligation qu'il soit à true....
Donc, soit j'ai pas capté un truc, soit les deux idées ne sont pas compatibles...
$conf['insensitive_case_logon'] = false est le cas "normal", par défaut, où les comptes "Test" et "test" peuvent exister ensemble sur la galerie.
Ce qui était proposé par Eric, c'est que si $conf['insensitive_case_logon'] est dans ce cas (false, inchangé), alors aucune des options de LCAS n'est disponible. Il y a donc bien obligation qu'il soit à true pour faire fonctionner LCAS.
C'est bien ça ??? :-/ .......
;-)
Dernière modification par LucMorizur (2010-12-19 18:54:19)
Hors ligne
Eric a écrit:
Et, si ce n'est pas lui, c'est donc le core de Piwigo ! UAM 2.15.3 étant donné compatible Piwigo 2.1.3 (et inférieures dans la branche 2.1), c'est dans la branche 2.1 de Piwigo qu'il faut rechercher ce qui a changé pour que la sensibilité à la casse ne s'effectue plus à l'identification.
Je pense avoir trouvé ce qui a changé dans Piwigo et quand cela a changé : http://piwigo.org/dev/changeset/4429/tr … r.inc.php. La fonction validate_login_case($login) a été ajoutée pour gérer la sensibilité à la casse des logins. Mais elle n'est appelée que par la fonction register_user().
Cela apporte un début d"explication à la question "pourquoi çà fonctionnait avant" mais je reste toujours bloqué sur le hook à l'identification pour LCAS. Je commence à penser qu'une demande d'évolution de la fonction try_log_user() de Piwigo va être nécessaire :-(
Hors ligne
LucMorizur a écrit:
Whiler a écrit:
LucMorizur a écrit:
Une autre réflexion, à exploiter plutôt lorsque l'on sera plus avancés, mais bon je l'expose quand même maintenant : le "core" de Piwigo ne propose pour le moment l'insensibilité à la casse qu'à l'inscription. Ce comportement est à modifier, comme l'a indiqué plg sur le forum anglophone. Mais la méthode utilisée dans le "core" de Piwigo pour l'insensibilité à la casse, n'utilise pas la fonction LCAS_change_case, qu'on peut légitimement trouver peut-être un peu lourde ?
Certe, mais multi-aplabets et efficace
LucMorizur a écrit:
Je pense donc que nous devons :
_ résoudre le [Bugtracker] ticket 1835 en utilisant les mêmes méthodes que le "core" de Piwigo, pour les cas où $conf['insensitive_case_logon'] = false ;-1
Les mêmes méthodes ? il faudrait utiliser LCAS_change_case('', 0 | 3)En parlant de "méthode", je voulais dire la façon de faire de Piwigo, pour activer l'insensibilité à la casse à l'inscription ; non pas méthode ≈ function au sens informatique. (Mais je ne suis pas sûr qu'il y ait eu confusion pour être honnête :-p !)
Eric, ton avis pour nous départager sur LCAS_change_case() versus strtolwer() lorsque $conf['insensitive_case_logon'] = false ?
Franchement, s'il ne s'agit *que* de la sensibilité à la casse, strtolwer() est amplement suffisant quelque soit le jeu de caractères. Une majuscule ou une minuscule, quelque soit l'alphabet, sera toujours interprété. Là où çà pêche, c'est pour les accents.
LucMorizur a écrit:
Whiler a écrit:
J'suis également d'accord : +1
Mais comme ce qui avait été dit sur $conf['insensitive_case_logon'] = false ; contredit l'obligation qu'il soit à true....
Donc, soit j'ai pas capté un truc, soit les deux idées ne sont pas compatibles...$conf['insensitive_case_logon'] = false est le cas "normal", par défaut, où les comptes "Test" et "test" peuvent exister ensemble sur la galerie.
Ce qui était proposé par Eric, c'est que si $conf['insensitive_case_logon'] est dans ce cas (false, inchangé), alors aucune des options de LCAS n'est disponible. Il y a donc bien obligation qu'il soit à true pour faire fonctionner LCAS.
C'est bien ça ??? :-/ .......
;-)
Oui, c'est çà. Il faut se baser sur la configuration par défaut de Piwigo qui est $conf['insensitive_case_logon'] = false. Dans ce cas, les options fournies par LCAS n'ont pas de raison d'être.
Si un webmestre de galerie se dit : "Tiens, sympa ce plugin LCAS, j'en aurais bien besoin pour mes users", il ne pensera pas forcément à l'option intégrée de Piwigo. C'est à LCAS de le lui rappeler avant tout.
Enfin, ce n'est qu'une vision parmi d'autres...
Hors ligne
Eric a écrit:
Eric a écrit:
Et, si ce n'est pas lui, c'est donc le core de Piwigo ! UAM 2.15.3 étant donné compatible Piwigo 2.1.3 (et inférieures dans la branche 2.1), c'est dans la branche 2.1 de Piwigo qu'il faut rechercher ce qui a changé pour que la sensibilité à la casse ne s'effectue plus à l'identification.
Je pense avoir trouvé ce qui a changé dans Piwigo et quand cela a changé : http://piwigo.org/dev/changeset/4429/tr … r.inc.php. La fonction validate_login_case($login) a été ajoutée pour gérer la sensibilité à la casse des logins. Mais elle n'est appelée que par la fonction register_user().
Cela apporte un début d"explication à la question "pourquoi çà fonctionnait avant" mais je reste toujours bloqué sur le hook à l'identification pour LCAS. Je commence à penser qu'une demande d'évolution de la fonction try_log_user() de Piwigo va être nécessaire :-(
Je viens d'effectuer le test, avec Piwigo 2.1.5, l'insensibilité à la casse fonctionne avec UAM 2.10.9f , mais pas avec UAM 2.15.3 :-/ . J'ai la flemme d'essayer avec chacune des versions intermédiaires....
Au cas où ça pourrait servir, l'insensibilité à la casse à l'identification est bien précisée dans UAM 2.10.9f (avec oubli d'un \ ;-) ) : voir image attachée.
Hors ligne
Luc, tu es génial ! ^^
Bien que je ne comprenne pas comment tu peux faire fonctionner un plugin donné pour la branche 2.0 de Piwigo sur une galerie en version 2.1.x, cela n'a aucune importance car tu viens de m'aider à trouver la solution pour le fameux hook de LCAS ! :-))
Et, si tu as eu la flemme de tester les versions intermédiaires de UAM, j'ai eu la flemme d'aller voir au dela de la branch 2.14 de UAM ! J'avais complètement oublié que j'avais codé la fonction pour vérifier la casse à l'inscription *et* à l'identification. Tu as donc eu parfaitement raison d'insister et je te fais mes excuses pour ne pas avoir été creuser plus loin dans mes archives. ;-)
Sans aucun doute, la force est avec toi, Luc ! ^^
Hors ligne
Eric a écrit:
Bien que je ne comprenne pas comment tu peux faire fonctionner un plugin donné pour la branche 2.0 de Piwigo sur une galerie en version 2.1.x, cela n'a aucune importance car tu viens de m'aider à trouver la solution pour le fameux hook de LCAS ! :-))
Et, si tu as eu la flemme de tester les versions intermédiaires de UAM, j'ai eu la flemme d'aller voir au dela de la branch 2.14 de UAM ! J'avais complètement oublié que j'avais codé la fonction pour vérifier la casse à l'inscription *et* à l'identification. Tu as donc eu parfaitement raison d'insister et je te fais mes excuses pour ne pas avoir été creuser plus loin dans mes archives. ;-)
Ben, fallait bien que je serve à quelque chose dans ce plugin ;-)
Hors ligne
Whiler a écrit:
En fait.. je le vois aussi correctement depuis cette page...
http://piwigo.org/dev/browser/extension … v=head#L36
Ce serait pas chez toi ? (allez... dis oui)
Sur le serveur de développement, il n'est pas possible de contrôler en ligne le codage des fichiers. Ils peuvent s'afficher correctement mais être "mal" encodés.
Mais par contre, via SVN, vu que l'on a accès directement (moyennent les autorisations) aux fichiers, j'ai contrôlé que le fichier était bien en UTF8 sans BOM. C'est donc ok.
Hors ligne
Gotcha a écrit:
Mais par contre, via SVN, vu que l'on a accès directement (moyennent les autorisations) aux fichiers, j'ai contrôlé que le fichier était bien en UTF8 sans BOM. C'est donc ok.
Merci Gotcha. En effet, le pb venait de chez moi (configuration de Winmerge). ;-)
Hors ligne
J'ai codé le hook pour la sensibilité à la casse et/ou la sensibilité aux accents en utilisant la fonction LCAS_change_case($username, $rule). Selon mes tests, çà à l'air de fonctionner.
Qu'en dit Béatrice ? ^^
Hors ligne
Eric a écrit:
J'ai codé le hook pour la sensibilité à la casse et/ou la sensibilité aux accents en utilisant la fonction LCAS_change_case($username, $rule). Selon mes tests, çà à l'air de fonctionner.
Qu'en dit Béatrice ? ^^
Codé... pour l'inscription, la connexion, les deux ?
Impossible de me connecter sans respecter la casse.. aussi bien à partir de l'écran principal que de la page identification.php ;o(
Testé !
- avec et sans la sensibilité aux accents...
- $conf['insensitive_case_logon'] = true;
- Insensible à la casse :activé
Dernière modification par Whiler (2010-12-20 18:56:27)
Hors ligne
Whiler a écrit:
Codé... pour l'inscription, la connexion, les deux ?
Pour la connexion seulement. Le contrôle de la casse à l'inscription est géré par Piwigo donc inutile de surcharger.
Whiler a écrit:
Impossible de me connecter sans respecter la casse.. aussi bien à partir de l'écran principal que de la page identification.php ;o(
Testé !
- avec et sans la sensibilité aux accents...
- $conf['insensitive_case_logon'] = true;
- Insensible à la casse :activé
C'est bizarre... Mes cas de figure pour les tests de sensibilité à la casse :
** 1 seul compte user test/pwd déjà créé - $conf['insensitive_case_logon'] = true - LCAS "Insensibilité à la casse" = False - LCAS "Insensibilité au accents" = False : Je peux me connecter avec test/pwd mais pas avec TEST/pwd, Test/pwd, etc...
** 1 seul compte user test/pwd déjà créé - $conf['insensitive_case_logon'] = true - LCAS "Insensibilité à la casse" = True - LCAS "Insensibilité au accents" = False : Je peux me connecter avec test/pwd, TEST/pwd, Test/pwd, etc...
** 2 comptes user test/pwd1 et TEST/pwd2 déjà créés - $conf['insensitive_case_logon'] = true - LCAS "Insensibilité à la casse" = False - LCAS "Insensibilité au accents" = False : Je peux me connecter avec test/pwd1 mais pas avec TEST/pwd, Test/pwd, etc... Je peux me connecter avec TEST/pwd2 mais pas avec test/pwd2, etc...
** 2 comptes user test/pwd1 et TEST/pwd2 déjà créés - $conf['insensitive_case_logon'] = true - LCAS "Insensibilité à la casse" = True - LCAS "Insensibilité au accents" = False : Je peux seulement me connecter avec test/pwd1, TEST/pwd1, Test/pwd1, etc... Le compte TEST/pwd2 n'est plus accessible (apparait dans le tableau des comptes à problème).
** Pas de compte créé - $conf['insensitive_case_logon'] = true - LCAS "Insensibilité à la casse" = False - LCAS "Insensibilité au accents" = False : Je peux créer un compte test/pwd. Je ne peux pas créer de comptes en doublon en casse de "test" et je peux me connecter avec test/pwd mais pas avec TEST/pwd, Test/pwd, etc...
** Pas de compte créé - $conf['insensitive_case_logon'] = true - LCAS "Insensibilité à la casse" = True - LCAS "Insensibilité au accents" = False : Je peux créer un compte test/pwd. Je ne peux pas créer de comptes en doublon en casse de "test" et je peux me connecter avec test/pwd, TEST/pwd, Test/pwd, etc...
Pour cette partie, cela me semble correspondre à ce que l'on cherche à avoir. Je poursuis mes essais en incluant la sensibilité aux accents (to be continued...)
Hors ligne