•  » Utilisation
  •  » Probleme avec l'authentification externe

#1 2011-05-18 12:01:58

judedie
Membre
2009-03-05
51

Probleme avec l'authentification externe

Bonjour,

J'ai installé une nouvelle galerie pour laquelle je souhaiterai utiliser une table des utilisateurs externe a celle de piwigo.
J'ai donc créé mon fichier de config local avec les valeurs suivantes :

Code:

// apache_authentication : utiliser l'authentification HTTP d'Apache comme
// référence au lieu de la table des utilisateurs ?
$conf['apache_authentication'] = false;

// users_table : quelle table est la table de référence pour les
// utilisateurs ? Peut être une table externe à Piwigo.
//
// Si vous décidez d'utiliser une table externe, vous devez préparer votre
// base de données en supprimant certains données :
//
// delete from piwigo_user_access;
// delete from piwigo_user_cache;
// delete from piwigo_user_feed;
// delete from piwigo_user_group;
// delete from piwigo_user_infos;
// delete from piwigo_sessions;
// delete from piwigo_rate;
// update piwigo_images set average_rate = NULL;
// delete from piwigo_caddie;
// delete from piwigo_favorites;
//
// Toutes les informations contenues dans ces tables sont relatives au
// contenu de la table des utilisateurs.
$conf['users_table'] = 'users';

// D'autres tables peuvent être changées si vous définissez une constante associée.
// Example:
//   define('USER_INFOS_TABLE', 'pwg_main'.'user_infos');

// external_authentification : si vous passez par une identification
// externe il faut changer la valeur pour True
$conf['external_authentification'] = true;
// D'autres tables peuvent être changées si vous définissez la constante
// correspondante.
// Example:
//   define('USER_INFOS_TABLE', 'pwg_main'.'user_infos');

// user_fields : Le mapping peux se faire sur des champs génériques dans la
// table spécifique.
// Par exemple dans Piwigo, le champs "mail adress" est nommé "mail_adress"
// or dans punbb ce champs est appelé "email".
$conf['user_fields'] = array(
  'id' => 'id',
  'username' => 'login',
  'password' => 'hashed_password',
  'email' => 'mail'
  );

// pass_convert : fonction pour chiffrer ou hasher le mot de passe afin de
// le stocker en base de donnée.
$conf['pass_convert'] = create_function('$s', 'return sha1($s);');

// guest_id : identifiant de l'invité
$conf['guest_id'] = 2;

// default_user_id : id de l'utilisateur servant de modèle aux nouveaux
// membres (lors
// de la création de comptes).
$conf['default_user_id'] = $conf['guest_id'];

// browser_language : La processus d'enregistrement et de gestion des
// membres guest/generic prend
// par défaut la localisation (langue) du navigateur. Si celui-ci n'est pas
// définissable (disponible),
// Piwigo prendra par défaut PHPWG_DEFAULT_LANGUAGE
$conf['browser_language'] = true;

// webmaster_id : identifiant du webmaster
$conf['webmaster_id'] = 1;

// Est-ce que l'accès visiteur est accepté? (Ce n'est pas une garantie de
// sécurité, vos catégories doivent être "privée" également)
// false : l'accès à la galerie des simples visiteurs redirigera vers
// la page identification.php
$conf['guest_access'] = true;
?>

J'ai vidé les quelques tables de la base de données avant de me reconnecter.

Le problème est que j'ai maintenant beaucoup d'erreur sql/php qui s'affiche sur la page avec un gros message "Statut de l'utilisateur guest non conforme, utilisation du statut par défaut."

J'ai essayé de faire machine arrière, c'est à dire de supprimer mon fichier de configuration locale mais ça ne change rien.

Je précise que j'ai déjà effectué cette manip sur une autre gallerie qui était en 2.1 et que j'ai upgradé par la suite en 2.2 sans aucun problème particuliers.

La gallerie est visible sur http://piwigo.mandogo.fr

Merci d'avance

Dernière modification par judedie (2011-05-18 12:18:21)

Hors ligne

#2 2011-05-18 12:13:45

judedie
Membre
2009-03-05
51

Re: Probleme avec l'authentification externe

Je précise que lorsque je m'authentifie, je suis redirigé vers une page blanche avec beaucoup d'erreurs :

Warning: [mysql error 1064] Erreur de syntaxe pr�s de '' � la ligne 4

SELECT DISTINCT(id)
  FROM piwigo_images INNER JOIN piwigo_image_category ON id=image_id
  WHERE category_id NOT IN (0)
    AND level> in/piwigo/include/dblayer/functions_mysql.inc.php on line 654

Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in /var/www/mandogo.fr/piwigo/include/dblayer/functions_mysql.inc.php on line 200 Notice: Undefined index: level in /var/www/mandogo.fr/piwigo/include/functions_user.inc.php on line 690

Warning: [mysql error 1064] Erreur de syntaxe pr�s de 'GROUP BY c.id, c.global_rank' � la ligne 8
SELECT c.id AS cat_id, global_rank,
  MAX(date_available) AS date_last, COUNT(date_available) AS nb_images
FROM piwigo_categories as c
  LEFT JOIN piwigo_image_category AS ic ON ic.category_id = c.id
  LEFT JOIN piwigo_images AS i
    ON ic.image_id = i.id
      AND i.level<=

Et en bas de la page :

You are not authorized to access the requested page
Identification Home

Hors ligne

#3 2011-05-18 13:57:20

ddtddt
Équipe Piwigo
Quetigny (21) - France
2007-07-27
16915

Re: Probleme avec l'authentification externe

je pense qu'il manque la partie du code qui indique la correspondance entre les différentes table

// user_fields : mapping between generic field names and table specific
// field names. For example, in PWG, the mail address is names
// "mail_address" and in punbb, it's called "email".
$conf['user_fields'] = array(
  'id' => 'id',
  'username' => 'username',
  'password' => 'password',
  'email' => 'mail_address'
  );

---------
de plus il faut prévoir dans ta table utilisateur un user qui servira d'invité
(tu peux définir sons ID avec

$conf['guest_id'] = 2;


Vous aimez Piwigo alors n'hésitez pas à participer avec nous, plus d'infos sur la page "Contribuer à Piwigo". Si vous n'avez pas beaucoup de temps et que vous souhaitez nous soutenir vous pouvez aussi le faire par un don.

Hors ligne

#4 2011-05-18 13:59:29

judedie
Membre
2009-03-05
51

Re: Probleme avec l'authentification externe

ddtddt a écrit:

je pense qu'il manque la partie du code qui indique la correspondance entre les différentes table

// user_fields : mapping between generic field names and table specific
// field names. For example, in PWG, the mail address is names
// "mail_address" and in punbb, it's called "email".
$conf['user_fields'] = array(
  'id' => 'id',
  'username' => 'username',
  'password' => 'password',
  'email' => 'mail_address'
  );

---------
de plus il faut prévoir dans ta table utilisateur un user qui servira d'invité
(tu peux définir sons ID avec

$conf['guest_id'] = 2;

Cette partie est déjà présente dans mon fichier (scroll sur le code ;) )

Hors ligne

#5 2011-05-18 14:10:13

flop25
Équipe Piwigo
2006-07-06
6544

Re: Probleme avec l'authentification externe

juste pour être certain : où avez vous placé et comment avez vous nommé votre fichier de config locale ?

Hors ligne

#6 2011-05-18 14:25:39

judedie
Membre
2009-03-05
51

Re: Probleme avec l'authentification externe

Le fichier s'appelle config.inc.php et est placé dans local/config

Je ne sais pas si je l'ai déjà mis, mais même lorsque je supprime mon fichier, l'erreur reste présente, pas moyen de revenir a une situation normale.

Hors ligne

#7 2011-05-18 14:30:20

flop25
Équipe Piwigo
2006-07-06
6544

Re: Probleme avec l'authentification externe

c'est bien le bon endroit
Si vous supprimer/renommer config.inc, et purger les template dans maintenance, vous avez encore des erruers ?
Aussi est-ce que dans votre authentification externe vous avez un utilisateur appelé guest ?

Hors ligne

#8 2011-05-18 14:35:39

judedie
Membre
2009-03-05
51

Re: Probleme avec l'authentification externe

Le probleme c'est que je ne peux plus me connecter, donc je ne peux pas purger les templates.
Par contre j'ai accès au serveur, donc je peux les purger manuellement si tu me dit ou les trouver.

Je n'ai pas d'utilisateur appelé guest dans mon autre table, j'ai juste donné l'identifiant d'un utilisateur par défaut.

Edit:
C'est bon, en purgeant les templates dans _data/templates_c et en renommant mon fichier de config j'arrive à me reconnecter sans soucis.

Dernière modification par judedie (2011-05-18 14:41:56)

Hors ligne

#9 2011-05-18 14:58:20

judedie
Membre
2009-03-05
51

Re: Probleme avec l'authentification externe

Hum hum, par contre dès que je remet mon fichier c'est la catastrophe...

Une idée sur le pourquoi qui génèrerait cette erreur?

Hors ligne

#10 2011-05-18 15:00:02

ddtddt
Équipe Piwigo
Quetigny (21) - France
2007-07-27
16915

Re: Probleme avec l'authentification externe

encodage des mots de passe est bien en MD5 dans l'autre programme ?


Vous aimez Piwigo alors n'hésitez pas à participer avec nous, plus d'infos sur la page "Contribuer à Piwigo". Si vous n'avez pas beaucoup de temps et que vous souhaitez nous soutenir vous pouvez aussi le faire par un don.

Hors ligne

#11 2011-05-18 15:08:08

judedie
Membre
2009-03-05
51

Re: Probleme avec l'authentification externe

ddtddt a écrit:

encodage des mots de passe est bien en MD5 dans l'autre programme ?

non c'est sha1, c'est pour ça que j'ai surchargé le $conf['pass_convert']

Hors ligne

#12 2011-05-19 14:59:05

judedie
Membre
2009-03-05
51

Re: Probleme avec l'authentification externe

Bonjour,

J'ai un peu avancé sur le sujet.
Je me suis rendu compte d'une erreur que j'avais fait, j'avais mal comprit l'utilisation de la variable "external_authentication".

Je l'ai donc repassé à false et cela fonctionne correctement.
$conf['external_authentification'] = false;

J'ai un autre probleme maintenant, c'est que ma table `users_info` ne se remplit pas.
Du coup l'authentification ne fonctionne pas.
Par contre lorsque je remplit manuellement la table avec l'id qui correspond à mon utilisateur cela fonctionne sans probleme.
Est-ce que par hasard j'aurai touché un truc qu'il ne faudrait pas?

Dernière modification par judedie (2011-05-19 15:06:24)

Hors ligne

#13 2011-05-19 16:08:00

judedie
Membre
2009-03-05
51

Re: Probleme avec l'authentification externe

En me plongeant un peu plus dans le code je remarque quelques bizarreries dans le fichiers functions_users.php, plus précisemment dans la fonction getuserdata (ligne 266):
A priori cette partie pose problème :

Code:

// retrieve additional user data ?
  if ($conf['external_authentification'])
  {
    $query = '
SELECT
    COUNT(1) AS counter,
  FROM '.USER_INFOS_TABLE.' AS ui
    LEFT JOIN '.USER_CACHE_TABLE.' AS uc ON ui.user_id = uc.user_id
    LEFT JOIN '.THEMES_TABLE.' AS t ON t.id = ui.theme
  WHERE ui.user_id = '.$user_id.'
  GROUP BY ui.user_id
;';
    if (pwg_db_fetch_row(pwg_query($query))!=1)
    {
      create_user_infos($user_id);

      $result = pwg_query($user_info_query);
      $user_infos_row = pwg_db_fetch_assoc($result);
    }
  }

Il semlberai que la , après "AS counter" ne soit syntaxiquement correcte.
De même la requête est stockée dans la variable $query et la fonction pwg_query utilise une variable $user_info_query

De même, si on utilise une authentification externe, on écrase le résultat de la requete ligne 297 :

Code:

 $query = '
 297 SELECT
 298     ui.*,
 299     uc.*,
 300     t.name AS theme_name
 301   FROM '.USER_INFOS_TABLE.' AS ui
 302     LEFT JOIN '.USER_CACHE_TABLE.' AS uc ON ui.user_id = uc.user_id
 303     LEFT JOIN '.THEMES_TABLE.' AS t ON t.id = ui.theme
 304   WHERE ui.user_id = '.$user_id.'
 305 ;';
 306
 307   $result = pwg_query($query);
 308   $user_infos_row = pwg_db_fetch_assoc($result);
 309

puisque le résultat est stocké dans la même variable.
A priori, au vu des messages d'erreur cela semble poser problème aussi

Hors ligne

#14 2011-06-06 15:15:45

judedie
Membre
2009-03-05
51

Re: Probleme avec l'authentification externe

Bonjour à tous,

Est-ce que quelqu'un d'autre à utilisé la fonctionnalité d'authentification externe avec succès?
Est il possible d'enregistrer un bug sur le sujet ou est-ce que cela viendrait de mon installation?

Merci

Hors ligne

#15 2011-06-06 17:44:39

ddtddt
Équipe Piwigo
Quetigny (21) - France
2007-07-27
16915

Re: Probleme avec l'authentification externe

oui

il fonctionne avec des forums et avec d'autre script

Mais cette partie est à améliorer

Toutes tes réflexions sur le sujet son les bienvenus

Par contre il n'y a pas de dev sur le coup pour le moment.


Vous aimez Piwigo alors n'hésitez pas à participer avec nous, plus d'infos sur la page "Contribuer à Piwigo". Si vous n'avez pas beaucoup de temps et que vous souhaitez nous soutenir vous pouvez aussi le faire par un don.

Hors ligne

  •  » Utilisation
  •  » Probleme avec l'authentification externe

Pied de page des forums

Propulsé par FluxBB

github twitter newsletter Faire un don Piwigo.org © 2002-2024 · Contact