Xprotector

Bonjour,

J'avance dans ma tentative pour installer Xprotector. Maintenant il fonctionne.

J'ai un autre problème.

Dans ma base sql, j'ai une base principale (préfixe spip_) et une base secondaire pour un autre site (préfixe travail_).

Or Xprotector ne prend en compte que la base spip_. Et... je voudrais protéger la base à préfixe travail_...

Est-ce que quelqu'un peut m'aider ?

Merci

Robert Caron wrote:

Or Xprotector ne prend en compte que la base spip_. Et... je voudrais protéger la base à préfixe travail_...

Est-ce que quelqu'un peut m'aider ?

les tables spip_* ne sont pas préfixées dans XProtector ; ce qui signifique
qu'il faut réecrire le code. C'est facile a faire. Mais ca prend du temps.

d'autre part, X-protector a aussi ses propres tables. Et la encore, l'acces
aux tables xp* n'est pas préfixé par un parametre dans un fichier de config.

visiblement, le concepteur n'avait pas prévus ce genre d'utilisation, mais
c'est relativement rapide a réaliser. Le créateur de XP-Protector vole
en ce moment sur d'autres cieux ; je pense que ca va etre difficile de lui
demander cette modification.

au fait Xprotector
c est toujours coincé sur amen ?

Cordialement
Xavier Courtonne

N@ntes Web
www.nantesweb.com
tél : 02 40 47 46 37

-----Message d'origine-----
De : spip-bounces@rezo.net [mailto:spip-bounces@rezo.net]De la part de
Marc Quinton
Envoyé : mercredi 17 septembre 2003 09:26
À : Robert Caron
Cc : spip@rezo.net
Objet : Re: [Spip] Xprotector

Robert Caron wrote:

Or Xprotector ne prend en compte que la base spip_. Et... je voudrais
protéger la base à préfixe travail_...

Est-ce que quelqu'un peut m'aider ?

les tables spip_* ne sont pas préfixées dans XProtector ; ce qui signifique
qu'il faut réecrire le code. C'est facile a faire. Mais ca prend du temps.

d'autre part, X-protector a aussi ses propres tables. Et la encore, l'acces
aux tables xp* n'est pas préfixé par un parametre dans un fichier de config.

visiblement, le concepteur n'avait pas prévus ce genre d'utilisation, mais
c'est relativement rapide a réaliser. Le créateur de XP-Protector vole
en ce moment sur d'autres cieux ; je pense que ca va etre difficile de lui
demander cette modification.

Marc Quinton tapota sur son clavier :

Robert Caron wrote:

Or Xprotector ne prend en compte que la base spip_. Et... je voudrais
protéger la base à préfixe travail_...

Est-ce que quelqu'un peut m'aider ?

les tables spip_* ne sont pas préfixées dans XProtector ; ce qui signifique
qu'il faut réecrire le code. C'est facile a faire. Mais ca prend du temps.

d'autre part, X-protector a aussi ses propres tables. Et la encore, l'acces
aux tables xp* n'est pas préfixé par un parametre dans un fichier de config.

visiblement, le concepteur n'avait pas prévus ce genre d'utilisation, mais
c'est relativement rapide a réaliser. Le créateur de XP-Protector vole
en ce moment sur d'autres cieux ; je pense que ca va etre difficile de lui
demander cette modification.

je lui en ai justement parlé récemment, il n'aura pas le temps de le faire,
j'en ai (un peu) besoin donc peut être que je m'y résoudrais un jour.

si qqn veut le faire voilà un début de réflexion sur la chose :

--- de l'auteur de Xprotector
Il faut définir une variable prefix avant d'inclure le fichier
Xprotector.php, ex.:
$xp_spip_prefix = 'xxxprefix_';

et remplacer dans tous les fichier qui contiennent une commande sql le
prefix des nom des tables spip "spip_" par ex.:
spip_rubriques

par

  '.$GLOBALS["xp_spip_prefix"] .'rubriques
----
Remarque : on doit pouvoir récupérer le prefix utilisé par spip, j'en suis
là de mes réflexions (en fin de compte je peux m'en passer je pense donc
j'ai pas fouillé)

Dorian

Robert Caron wrote:

Marc Quinton a écrit :

Robert Caron wrote:

Or Xprotector ne prend en compte que la base spip_. Et... je voudrais protéger la base à préfixe travail_...

Est-ce que quelqu'un peut m'aider ?

les tables spip_* ne sont pas préfixées dans XProtector ; ce qui signifique
qu'il faut réecrire le code. C'est facile a faire. Mais ca prend du temps.

d'autre part, X-protector a aussi ses propres tables. Et la encore, l'acces
aux tables xp* n'est pas préfixé par un parametre dans un fichier de config.

visiblement, le concepteur n'avait pas prévus ce genre d'utilisation, mais
c'est relativement rapide a réaliser. Le créateur de XP-Protector vole
en ce moment sur d'autres cieux ; je pense que ca va etre difficile de lui
demander cette modification.

Si c'est facile et simplement long... Je veux bien tenter...

C'est long à expliquer ?

Merci

il y a plusieurs facons ; la facon &/spip, 2/ une facon plus juste, mais dont le
résulat est exactement le meme.

1/

- toutes les requetes spip sont encapsulées dans la requette sqpip_query(...);
dans le code de spip_query, il y a une petite magouille qui prend en compte les
tables préfixées;

- dans SPIP, si on veut une table préfixée, il faut mettre $GLOBALS['table_prefix']
au nouveau prefix ; en cas de changement de prefix de table, il faut remplacer
toutes les chaines dans les requetes sql de la forme spip_* par prefix_*

ceci est realisé par ecrire/inc_db_mysql.php3/traite_query(); et ca marche bien.

il suffit dans X-Protector de faire la meme chose ; le soucis est d'obtenir le
prefix dans le module X-Protector ; soit c'est codé en dur, soit dynamique.
Si c'est dynamique, il faut sans doute faire un include 'mes_fonction.php3';

2/ deuxieme methode ; remplacer tous les spip_[rubriques|articles|breves|...]
par $this->prefix . _article;

et faire en sorte que $this->prefix soit valorisé quelque part dans le constructeur
de toutes les classes ;

ex : Xprotector/include/class.rub.php

     ...
     function & get_xp_rubriques($smarty = FALSE)
     {
  ....
                 spip_rubriques AS sp

     remplacer par le prefix ; static ou dynamique;

il faudra faire la meme chose avec toutes les tables xp_*
en effet X-Protector a ses propres tables ; elle ne peuvent
tres certainement pas etre partagées avec les 2 instances
de SPIP (table spip_* et travail_*);

ceci est realisé par ecrire/inc_db_mysql.php3/traite_query(); et ca marche
bien.

il suffit dans X-Protector de faire la meme chose ; le soucis est
d'obtenir le prefix dans le module X-Protector ; soit c'est codé en dur,
soit dynamique. Si c'est dynamique, il faut sans doute faire un include
'mes_fonction.php3';

En fait c'est tout bête :

    include("ecrire/inc_version.php3");
    spip_query("UPDATE spip_articles ....");

et c'est bon.

-- Fil

Robert Caron wrote:

Génial, j'obtiens mes rubriques... dans le menu déroulant.

Mon problème maintenant c'est que quand j'essaie de me loger, il me repropose la même page login, mot de passe. Et j'ai dans la barre d'adresse :

monsite.com - Ce site web est à vendre ! - Ressources et information concernant monsite Resources and Information.

je pense que cela vien du fait que Xprotector a sa propre table
des users, et ses propres clés de login (cookies). C'est un choix
il aurait pu etre différent. Ca peut sans doute se modifier.
Principalement, ca n'impacte que la partie privée, de tout maniere
pour la partie publique il faut se loger pour acceder aux docs privés.

Salut,

-----Message d'origine-----
De : spip-bounces@rezo.net [mailto:spip-bounces@rezo.net]De la part de
Marc Quinton
Envoyé : lundi, 22. septembre 2003 09:15
À : Liste SPIP
Objet : Re: [Spip] Xprotector

Robert Caron wrote:
> Génial, j'obtiens mes rubriques... dans le menu déroulant.
>
> Mon problème maintenant c'est que quand j'essaie de me loger, il me
> repropose la même page login, mot de passe.

Je crois avoir vécu le problème et il me semble m'en être sorti en
supprimant quelques fichiers *.tpl dans le dossier /smarty/templates_c/ ...

Une petite sauvegarde avant, quand même ! :wink:

Bonnes