Concrètement à quoi ça sert ? Dans mon cas, lors de la création d'un compte par les administrateurs sur le planet de Fedora-Fr (géré bien évidement par eZ Publish), je veux être sûr que le login renseigné correspond à un GauffrUser (utilisateur de la Gestion de Authentification Unifiée de Fedora-FR, Gauffr fera l'objet d'un prochain billet). Pour cela, j'ai donc rajouté un petit contrôle :

  1. function validateInput( $http, &$module, &$class, $object, &$version, $contentObjectAttributes, $editVersion, $editLanguage, $fromLanguage, $validationParameters )
  2. {
  3. $result = array( 'is_valid' => true, 'warnings' => array() );
  4. $isValid =& $result['is_valid'];
  5. $warnings =& $result['warnings'];
  6.  
  7. $contentClassIdentifier = $class->Identifier;
  8. $gauffrIni = eZIni::instance('gauffr.ini');
  9.  
  10. switch( $contentClassIdentifier )
  11. {
  12. case $gauffrIni->variable('eZUser', 'UserClassIdentifier'):
  13.  
  14. /* get user login */
  15. $user_account = $object->dataMap();
  16. $user_account = $user_account['user_account'];
  17. $user_accountID = $user_account->ID;
  18. $http_login = 'ContentObjectAttribute_data_user_login_' . $user_accountID;
  19. if ( $http->postVariable( $http_login ) )
  20. {
  21. $login = $http->postVariable( $http_login );
  22. /* Fetch GauffrUser */
  23. if ( !isset($GLOBALS['GAUFFR_INIT']) || !$GLOBALS['GAUFFR_INIT'] )
  24. include 'Gauffr/gauffr.php';
  25.  
  26. if ( !empty($login) && $gauffrIni->variable('GauffrSettings', 'StricMode') == 'enabled' && !GauffrUser::unique(GauffrUser::fetchUserByLogin( $login ) ) )
  27. {
  28. $warnings[] = array( 'text' => ezi18n( 'gauffr/validate', 'No GauffrUser "%user" in GauffrMaster. Please add account on GauffrMaster first.', null, array('%user' => $login) ) );
  29. $isValid = false;
  30. }
  31. }
  32. break;
  33. }
  34.  
  35. return $result;
  36. }