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é.
Hors ligne
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...
// 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.
Hors ligne
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 ?
Hors ligne
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
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 ?
Hors ligne
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é ???
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 :(
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'].
Hors ligne
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 ??
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-)
Hors ligne
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 ! :)
Hors ligne
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-)
Hors ligne
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)
Hors ligne
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)
Hors ligne