Piwigo Bugtracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0000801Piwigoauthenticationpublic2008.02.10 14:222008.05.15 08:19
Reporterflipflip 
Assigned ToPat 
PrioritynormalSeverityfeatureReproducibilityalways
StatusclosedResolutionfixed 
PlatformOSOS Version
Product Version 
Target VersionFixed in Version1.7.2 
Summary0000801: trigger sur le contrôle du formulaire d'inscription
DescriptionSuite à ce post http://forum.phpwebgallery.net/viewtopic.php?id=12641 [^] je suis tombé face au problème du contrôle du formulaire d'inscription. Le trigger utilisé dans la fonction register_user est executable dans le cas ou les contrôles de base de PhpWebGallery ne renvoie pas d'erreur par le tableau $errors. Le problème est qu'on ne peut pas ajouter de contrôle supplémentaire via un plugin. Pour mon cas le plugin UserDir mais ça pourrait servir par exemple à vérifier si une adresse mail est déjà utilisé ou bien filtrer les domaines des adresses voir même envisager un lien vers un système d'annuaire LDAP ou OpenID. Au contraire P@t à trouvé la solution de pourquoi le $errors n'était pas pris en compte dans la fonction register_user lorsqu'un trigger était utilisé. Il faut la mettre en global. Au trigger que j'ajoute je passe un tableau qui contient le login, le pass et le mail.
Steps To Reproducefunction register_user($login, $password, $mail_address,
  $with_notification = true, $errors = array())
{
  global $lang, $conf, $errors;

  if ($login == '')
  {
    array_push($errors, $lang['reg_err_login1']);
  }
  if (ereg("^.* $", $login))
  {
    array_push($errors, $lang['reg_err_login2']);
  }
  if (ereg("^ .*$", $login))
  {
    array_push($errors, $lang['reg_err_login3']);
  }
  if (get_userid($login))
  {
    array_push($errors, $lang['reg_err_login5']);
  }
  $mail_error = validate_mail_address($mail_address);
  if ('' != $mail_error)
  {
    array_push($errors, $mail_error);
  }

  trigger_event('register_user_check',
      array(
        'login'=>$login,
        'password'=>$password,
        'email'=>$mail_address,
       )
  );
TagsNo tags attached.
browserany
Database engine and version
PHP version
Web serverApache 1.3.x
Attached Files

- Relationships

-  Notes
(0002155)
rub (developer)
2008.02.29 14:54

En tout cas, il ne faut mettre le errors en global.

Il faudrait mettre un trigger avant le "if (count($errors) == 0)" pour ajouter des erreurs (trigger avec le errors en retours)

Et voir pour d'autres après pour les problèmes l'identification ou de formulaire personnalisé.
(0002157)
Pat (developer)
2008.02.29 17:48
edited on: 2008.02.29 17:49

C'est exactement ce que je disais à flipflip sur le forum.
Voila ce que je me préparais à faire:

$errors = trigger_event('register_user_check',
              $errors,
              array(
                'login'=>$login,
                'password'=>$password,
                'email'=>$mail_address,
              )
           );

C'est ce que j'avais proposé à flipflip dans un premier temps...
Ca me parait pas mal ca, non?

(0002158)
rub (developer)
2008.02.29 19:35

Je n'avais pas relu le topic du forum.

Oui, c'est bien comme ca.
(0002161)
Pat (developer)
2008.03.01 16:27

Le trigger suivant a été ajouté:

$errors = trigger_event('register_user_check',
              $errors,
              array(
                'login'=>$login,
                'password'=>$password,
                'email'=>$mail_address,
              )
           );

branch 1.7: [Subversion] r2236
trunk: [Subversion] r2237
(0002167)
Pat (developer)
2008.03.09 09:06

Modification du trigger ('login' changé en 'username'):

$errors = trigger_event('register_user_check',
              $errors,
              array(
                'username'=>$login,
                'password'=>$password,
                'email'=>$mail_address,
              )
           );

trunk: [Subversion] r2268
branch 1.7: [Subversion] r2271

- Issue History
Date Modified Username Field Change
2008.02.10 14:22 flipflip New Issue
2008.02.10 14:22 flipflip browser => any
2008.02.10 14:22 flipflip Web server => Apache 1.3.x
2008.02.29 11:00 Pat Status new => assigned
2008.02.29 11:00 Pat Assigned To => Pat
2008.02.29 14:54 rub Note Added: 0002155
2008.02.29 17:48 Pat Note Added: 0002157
2008.02.29 17:49 Pat Note Edited: 0002157
2008.02.29 19:35 rub Note Added: 0002158
2008.03.01 16:27 Pat Status assigned => resolved
2008.03.01 16:27 Pat Fixed in Version => 1.7.2
2008.03.01 16:27 Pat Resolution open => fixed
2008.03.01 16:27 Pat Note Added: 0002161
2008.03.09 09:06 Pat Status resolved => feedback
2008.03.09 09:06 Pat Resolution fixed => reopened
2008.03.09 09:06 Pat Note Added: 0002167
2008.03.09 09:06 Pat Status feedback => resolved
2008.03.09 09:06 Pat Resolution reopened => fixed
2008.05.15 08:19 VDigital Status resolved => closed


Copyright © 2000 - 2015 MantisBT Team
Contact
Powered by Mantis Bugtracker