Annonce

  •  » Utilisation
  •  » [Résolu] Authetification sur une BDD externe (owncloud)

#1 2012-03-04 10:26:11

zoic21
Membre
2012-03-04
4

[Résolu] Authetification sur une BDD externe (owncloud)

Bonjour,

Je souhaiterais lier l'authentification de piwigo à celle de owncloud 3 dont le schéma pour la table utilisateur et le suivant :

+----------+--------------+------+-----+---------+-------+
| Field       | Type         | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+-------+
| uid         | varchar(64)  | NO   | PRI |         |       |
| password | varchar(255) | NO   |     |         |       |
| vpn        | int(11)      | NO   |     | 0       |       |
+----------+--------------+------+-----+---------+-------+


Le uid contient le nom d'utilisateur et password le mot de passe en encoder en sha1.
VPN étant pour le droit à utiliser le VPN.

Je rajouterais donc un champ photo (qui indiquera le droit à se connecter à piwigo)

Après quelques recherches sur le forum j'ai vu qu'il fallait utiliser le local file editor mais je vois pas ou dans le fichier je lui indique la database à utiliser?

En vous remerciant d'avance

Hors ligne

#2 2012-03-04 12:28:32

Gotcha
Equipe Piwigo
Pierrelatte (26)
2007-03-14
13331

Re: [Résolu] Authetification sur une BDD externe (owncloud)

Code:

// +-----------------------------------------------------------------------+
// | Authentication                                                        |
// +-----------------------------------------------------------------------+
 
// 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'] = $prefixeTable.'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'] = false;
 
// 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' => 'username',
  'password' => 'password',
  'email' => 'mail_address'
  );
 
// 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 md5($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;

Source : [wiki]


Ayez comme premier réflexe de consulter le wiki.
Ensuite, veuillez effectuer une recherche sur le forum avant de poser votre question.

LE FAIRE EST LE REVELATEUR DE L'ETRE

Hors ligne

#3 2012-03-04 13:53:51

zoic21
Membre
2012-03-04
4

Re: [Résolu] Authetification sur une BDD externe (owncloud)

Voila je viens d'essayer mais ça ne marche  car la table oc_users n'est pas dans la base de piwigo mais dans la base de données owncloud. De plus il n'y a pas de réel gestion d'id la table ne référence que les nom d'utilisateur et les mots passe (en gros je voudrais by pass la fonction d'authentification de base pour centraliser les mots de passe).


 

Code:

// +-----------------------------------------------------------------------+
// | Authentication                                                        |
// +-----------------------------------------------------------------------+
 
// 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'] = oc_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'] = false;
 
// 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' => 'uid',
  'password' => 'password',
  'email' => 'vpn'
  );
 
// 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;

Hors ligne

#4 2012-03-04 14:12:40

Eric
Équipe Piwigo
VALENCE (FR)
2005-03-25
4579

Re: [Résolu] Authetification sur une BDD externe (owncloud)

En effet, la notion de "table externe" à Piwigo pour l'authentification reste limitée à une base de données unique. On ne peut pas, pour l'instant, lier Piwigo à une table d'utilisateurs se trouvant dans une table sur une autre base de données que celle où Piwigo est installé; a fortiori, si la seconde base de données est localisée sur un serveur différent.

Pour que cela fonctionne, il faudrait pouvoir gérer les connexions à 2 bases de données en même temps. Mais je ne sais pas du tout si c'est possible.

Hors ligne

#5 2012-03-04 14:43:47

zoic21
Membre
2012-03-04
4

Re: [Résolu] Authetification sur une BDD externe (owncloud)

D'accord
Est-il possible, alors, de juste changer les cryptage des mots de passe? Le mettre juste en sha1 (sans salt si il en existe un).

Hors ligne

#6 2012-03-04 14:55:14

Eric
Équipe Piwigo
VALENCE (FR)
2005-03-25
4579

Re: [Résolu] Authetification sur une BDD externe (owncloud)

Cela devrait fonctionner en remplaçant ceci

Code:

// 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 md5($s);');

Par cela

Code:

// 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);');

Dans le fichier de configuration local. Pas testé...

Hors ligne

#7 2012-03-04 19:02:02

zoic21
Membre
2012-03-04
4

Re: [Résolu] Authetification sur une BDD externe (owncloud)

Je te remercie pour tes réponses j'ai réussi à faire en sorte qu'un changement de mots de passe dans owncloud change celui de piwigo (c'est un peu sale mais bon pas trop le choix apparemment).

Hors ligne

  •  » Utilisation
  •  » [Résolu] Authetification sur une BDD externe (owncloud)

Pied de page des forums

Propulsé par FluxBB

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