#1 2005-12-31 13:44:22

flipflip
Membre
Lyon
2005-03-19
2316

Authentification externe

Salut, j'essai de mettre en place l'authenfication externe de PWG. D'un côté PWG avec ~200 utilisateurs, de l'autre PunBB avec 1 utilisateur (l'admin), j'ai suivi les instructions dans le config_default.php, l'authentification par apache fonctionne bien mais j'ai juste un doute, il faut que les utilisateurs sois présent dans les 2 tables users (PunBB et PWG) ?

Si oui va falloir que je modifie le comportement de PWG pour que lorsqu'un nouvel utilisateur s'inscrie, sont compte soit créé automatiquement dans PunBB... Et là c'est pas gagné.


Le cerveau à des capacités tellement étonnantes qu’aujourd’hui pratiquement tout le monde en à un

Mon site : http://www.blogoflip.fr

Hors ligne

#2 2006-01-02 10:00:10

VDigital
Former Piwigo Team
Montpellier (FR)
2005-05-04
15127

Re: Authentification externe

Je n'ai pas PunBB, et je vais arrêter le forum de mon site, je ne m'intérresse donc pas à ce pb mais...
Je crois que tu prends le pb à l'envers, je peux me tromper, j'explique.

L' identification externe, c'est PWG qui l'exploite, pas PunBB.

En gros:
Comme tu as tes membres dans PWG, il te faut les transférer dans PunBB avant de régler les paramètres de PWG.
Puis il te faudra inviter tes membres à s'incrire sur PunBB.
Enfin... Dans ton config_local.inc.php...

Code:

// users_table : quelle table est la table de référence pour les
// utilisateurs ? Peut être une table externe à PhpWebGallery.
//
// 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 phpwebgallery_user_access;
// delete from phpwebgallery_user_cache;
// delete from phpwebgallery_user_feed;
// delete from phpwebgallery_user_group;
// delete from phpwebgallery_user_infos;
// delete from phpwebgallery_sessions;
// delete from phpwebgallery_rate;
// update phpwebgallery_images set average_rate = NULL;
// delete from phpwebgallery_caddie;
// delete from phpwebgallery_favorites;
//
// Toutes les informations contenues dans ces tables sont relatives au
// contenu de la table des utilisateurs.
$conf['users_table'] = $prefixeTable.'users';
 
// user_fields : correspondance entre un nom générique de champ et le nom
// spécifique dans la table. Par exemple, dans PhpWebGallery, l'adresse
// email est "mail_address" et dans PunBB, son nom est "email".
$conf['user_fields'] = array(
  'id' => 'id',
  'username' => 'username',
  'password' => 'password',
  'email' => 'mail_address'
  );

C'est surtout le mapping des variables et le nom de ta table users qui feront le boulot ensuite.


Vincent -« Plus vidéaste averti que photographe amateur... »
La galerie - Le blog   

Piwigo est une application libre de gestion de photos en ligne.

Hors ligne

#3 2006-01-02 14:23:12

flipflip
Membre
Lyon
2005-03-19
2316

Re: Authentification externe

Salut. Pour être sur que j'ai bien compris. Je transfert mes utilisateurs existant sur PunBB, je modifie les paramètres dans le config_local.php, mais que ce passe t'il pour les nouveaux utilisateurs ? Il faut qu'ils s'inscrivent sur PunBB et automatiquement il aurons accès à PWG ? Si oui comment est géré le groupe utilisateur ?


Le cerveau à des capacités tellement étonnantes qu’aujourd’hui pratiquement tout le monde en à un

Mon site : http://www.blogoflip.fr

Hors ligne

#4 2006-01-02 16:07:57

Vassae
Membre
2005-01-13
127

Re: Authentification externe

Tous les utilisateurs de punbb deviennent utilisateurs de pwg. Ceux qui s'inscriraient par la suite sur pwg poseraient un problème car la table de punbb risquerait d'être mal complétée.

Les groupes eux restent dépendants de l'application, donc il faut gérer les groupes de punbb et ceux de pwg.

Hors ligne

#5 2006-01-02 16:27:42

flipflip
Membre
Lyon
2005-03-19
2316

Re: Authentification externe

Ok, donc il faut que les nouveaux utilisateurs s'inscrivent sur PunBB et de ce faite ils auront accès à PWG. Pour les groupes si l'on créé exactement les même groupe entre PunBB et PWG est-ce qu'il y a moyen de les mapper ?


Le cerveau à des capacités tellement étonnantes qu’aujourd’hui pratiquement tout le monde en à un

Mon site : http://www.blogoflip.fr

Hors ligne

#6 2006-03-02 01:55:33

Starchou
Invité

Re: Authentification externe

Bonjour, j'essaye de comprendre comment faire cela mais j'avoue avoir du mal :(

Je possède un forum IPB et PWG 1.5.2

Le truc, c'est que je comprend pas bien comment il faut faire pour que PWG aille chercher les informations utilisateurs dans la table ibf_members

si j'ai bien compris en premier lieu il faut que je remplace :
$conf['users_table'] = $prefixeTable.'users';

par :

$conf['users_table'] = $prefixeTable.'le nom de ma table d'ibf ?';

le probleme c est que mes table de PWG commence par phpwebgallerie_ et celle d'ibf par ibf_

or si j'ai bien compris, si je remplace .'users';  par .'membre';   il va aler chercher dans phpwebgallerie_membre non ?
Et je ne peut pas renommer mes tables pwg en ibf sinon je risque d'avoir des doublons  :(

Ai je bien compris ou me suis je completement planté ???

#7 2006-03-02 02:28:01

Starchou
Invité

Re: Authentification externe

Bon j'ai mis cela :

/ All informations contained in these tables and column are related to
// phpwebgallery_users table.
$conf['users_table'] = 'ibf_members';

// 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',
  'name' => 'username',
  'legacy_password' => 'password',
  'email' => 'mail_address'
  );



Mais il me retourne cela en erreur :(

SELECT id AS id
     , username AS name
     , password AS legacy_password
     , mail_address AS email
  FROM ibf_members
  WHERE id = '0'
;
[mysql error 1054] Unknown column 'username' in 'field list'



je comprend pas trop la :(

#8 2006-03-02 08:06:35

plg
Équipe Piwigo
Nantes, France, Europe
2002-04-05
12671

Re: Authentification externe

Starchou a écrit:

// 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',
  'name' => 'username',
  'legacy_password' => 'password',
  'email' => 'mail_address'
  );

[...]

je comprend pas trop la :(

Tu as inversé les clefs et les valeurs dans le tableau $conf['user_fields'].


Les historiens ont établi que Pierrick était le premier utilisateur connu de Piwigo.

Hors ligne

#9 2006-03-02 10:45:30

Starchou
Invité

Re: Authentification externe

Bien, merci :) je vais regarder cela mais il me semble avoir essayé en inversant aussi et que cela faisait pareil.

Si on suit l'exemple c'est pourtant bien cela non ???

For example, in PWG, the mail address is names "mail_address" and in punbb, it's called "email"
'email' => 'mail_address'



ici c'est bien le champ de punbb en premier et celui de pwg en 2nd non ??

#10 2006-03-02 13:53:01

VDigital
Former Piwigo Team
Montpellier (FR)
2005-05-04
15127

Re: Authentification externe

Starchou a écrit:

SELECT id AS id
     , username AS name
     , password AS legacy_password
     , mail_address AS email
  FROM ibf_members
  WHERE id = '0'
;
[mysql error 1054] Unknown column 'username' in 'field list'

L'erreur -//:---\spam bien qu'il faut inverser, je confirme.
Et pourtant:

Wiki a écrit:

// user_fields : correspondance entre un nom générique de champ et le nom
// spécifique dans la table. Par exemple, dans PhpWebGallery, l'adresse
// email est "mail_address" et dans PunBB, son nom est "email".
$conf['user_fields'] = array(
  'id' => 'id',
  'username' => 'username',
  'password' => 'password',
  'email' => 'mail_address'
  );

S'il faut inverser, il faut peut être que nous regardions de plus près la documentation car Wiki n'a pas écrit:
  'mail_address' => 'email'
et pourtant c'est bien ce qu'il semble nécessaire de coder.
D'où peut-être un certain nombre de problèmes avec la gestion de l'Authentification...

Merci de nous faire un retour positif. 8-)


Vincent -« Plus vidéaste averti que photographe amateur... »
La galerie - Le blog   

Piwigo est une application libre de gestion de photos en ligne.

Hors ligne

#11 2006-03-02 17:30:24

Starchou
Membre
Ariege / Val de Marne
2006-03-02
20

Re: Authentification externe

Bon j'ai d'abord commencé par m'inscrire au forum PWG :)

Merci en tout cas pour vos réponses, je regarde cela ce soir, je peut pas le faire du boulot car le proxy bloque le port 21 :( (ministere de l'interieur.... grrr :(  )

Je vous tiens au courant ! :)


Forum IPB 2.1
PWG 1.5.2
www.starchou.net

Hors ligne

#12 2006-03-02 19:23:47

Vassae
Membre
2005-01-13
127

Re: Authentification externe

Pour les noms des champs, tu modifies le deuxième champ (c'est le deuxième qui reprend le nom du champ dans ta table ipb).

Pour la table utilisateur de ton forum, tu l'as écrit effectivement comme il fallait :)

Hors ligne

#13 2006-03-02 20:46:42

VDigital
Former Piwigo Team
Montpellier (FR)
2005-05-04
15127

Re: Authentification externe

VDigital a écrit:

Starchou a écrit:

SELECT id AS id
     , username AS name
     , password AS legacy_password
     , mail_address AS email
  FROM ibf_members
  WHERE id = '0'
;
[mysql error 1054] Unknown column 'username' in 'field list'

L'erreur -//:---\spam bien qu'il faut inverser, je confirme.

id pas de problème: le nom est le même des deux cotés.

     , username AS name
Est-ce que username est une colonne de ibf_members?
Visiblement: non car...
Unknown column 'username' in 'field list'

donc, dans $conf['user_fields'] on écrira
  'username' ='name',
et pas:
  'name' => 'username',

Sous réserve que 'name' soit une colonne de ibf_members (je n'ai jamais essayé le forum IPB).


Est-ce plus clair?
8-)


Vincent -« Plus vidéaste averti que photographe amateur... »
La galerie - Le blog   

Piwigo est une application libre de gestion de photos en ligne.

Hors ligne

#14 2006-03-02 23:20:59

Starchou
Membre
Ariege / Val de Marne
2006-03-02
20

Re: Authentification externe

OK :) merci à vous pour ces réponses ! :)

Donc j'ai mis cela :

$conf['user_fields'] = array(
  'id' => 'id',
  'username' => 'name',
  'password' => 'legacy_password',
  'mail_address' => 'email'
  );



Voila le message d'erreur :

SINSERT INTO phpwebgallery_user_infos
  (user_id,status,template,nb_image_line,nb_line_page,language,recent_period,expand,show_nb_comments,maxwidth,maxheight,registration_date)
   VALUES
  (NULL,'guest','yoga','5','3','fr_FR.iso-8859-1','7','false','true',NULL,NULL,'2006-03-03 00:06:49')
;
[mysql error 1048] Column 'user_id' cannot be null




:(

Dernière modification par Starchou (2006-03-03 00:05:20)


Forum IPB 2.1
PWG 1.5.2
www.starchou.net

Hors ligne

#15 2006-03-03 00:26:08

Starchou
Membre
Ariege / Val de Marne
2006-03-02
20

Re: Authentification externe

Bon oubliez la fin de mon post précédent, j'ai réussi à le faire fonctionner mais je me retrouve face à un problème ! :(

En fait, pour l'id guest dans IBF, lorsque l'on regarde la table members il n y  a pas de champs invité :( par contre si l 'on regarde la table des posts de IBF les posts écrit par des invités ont pour id_user : 0

J'ai donc essayé en mettant 0 dans le fichier config_default_inc.php mais la ca ne marche pas (cela affiche le code d'erreur de mon post précédent, en effet ne trouvant pas de compte invité il met une valeur = nul mais ce n est pas accepté par PWG donc ca ne marche pas...)

J'ai donc essayé en mettant 1 en guest_id et la cela fonctionne !!! (1 étant moi sur le forum)

Par contre j'ai essayer de me loguer et la ca ma retourner cela :

SELECT
  FROM ibf_members
  WHERE id = 1
;
[mysql error 1064] You have an error in your SQL syntax near 'FROM ibf_members
  WHERE id = 1
' at line 3


:( grrrr :(


---------- Modification ----------

Donc en fait voila pour faire des test, j'ai créer un enregistrement pour les invités dans la table ibf_members avec id=-1 et je l'ai indiqué dans le fichier de configuration.

Donc pour les invités cela fonctionne nikel !!! :) c'est déjà ca ! :)

par contre toujours pas possible de se logger sinon il met toujours le meme message d'erreur (je précise que j'ai vider mon cache, historique et cookies pour être sûr que aucun éléments ne soit faux...) :


SELECT
  FROM ibf_members
  WHERE id = 1
;
[mysql error 1064] You have an error in your SQL syntax near 'FROM ibf_members
  WHERE id = 1
' at line 3



Si vous voulez essayer : http://www.starchou.net/galerie/category.php

Dernière modification par Starchou (2006-03-03 00:48:52)


Forum IPB 2.1
PWG 1.5.2
www.starchou.net

Hors ligne

Pied de page des forums

Propulsé par FluxBB

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