[SPIP Zone] Une question sur les exec appelés depuis l'espace public sans être autentifié.

Bonjour,

Dans la BTv2, il y a une fenêtre en popup qui permet d'éditer un tableau (pratique !).
Seulement voilà, depuis un forum de l'espace public, cette fenêtre demande de s'identifier :frowning:

Par quel mécanisme est-ce qu'on peut avoir des traitements appelés depuis l'espace public sans avoir besoin d'être authentifié ?

Si ce n'est pas un exec= est-ce autre chose ?

--
RealET

RealET a écrit :

Bonjour,

Dans la BTv2, il y a une fenêtre en popup qui permet d'éditer un tableau (pratique !).
Seulement voilà, depuis un forum de l'espace public, cette fenêtre demande de s'identifier :frowning:
  

soit tu désécurises ton exec (ca oblige à forker un fichier spip) soit tu fais un ... squelette, non ?
quitte à avoir juste un formulaire dedans (le formulaire etant le truc à utiliser pour faire un traitement ET renvoyer un contenu).

Par quel mécanisme est-ce qu'on peut avoir des traitements appelés depuis l'espace public sans avoir besoin d'être authentifié ?
  

il ne faut pas confondre action (traitement) et exec (eventuellement retour après traitement)
tu peux appeler une action et rediriger vers un squelette (sauf quelques exceptions pénibles...)

Si ce n'est pas un exec= est-ce autre chose ?
  
ben, en toute logique, dans l'epace public, c'est un formulaire.
Si tu as un appel Ajax, tu peux appeler spip.php?page=toto avec dans toto.html des boucle ou un formulaire.

apres, si tu veux utiliser des traitements (action) de l'espace privé depuis l'espace public, c'est dans la construction de l'url qu'il faut lui passer un redirect (squelette dans ce cas)

@++

Le 13/09/07, Stephane<stephane@rezo.net> a écrit :

soit tu désécurises ton exec (ca oblige à forker un fichier spip) soit
tu fais un ... squelette, non ?

j'en profite pour rebondir sur les actions.

Si j'appelle une page qui ne fait que faire du calcul (ex.
authentification), logiquement elle devrait être dans action/ (surtout
si je veux outrepasser le cache).

Par contre, mon fichier action/auth_perso.php doit systématiquement se
terminer par un die(), sinon j'ai un message d'erreur "Fichier
action/auth_perso introuvable", que je crée ou pas un fichier
action/auth_perso.html..

En regardant d'autres fichiers je me suis aperçu qu'ils étaient
constitués principalement d'une fonction de type
action-auth_perso-dist(), d'ou mes 2 questions :

- Comment est-ce possible que cela fonctionne sans cette fonction ?
- Est-ce que l'appel à cette fonction se fait après la création du
cache (s'il y en a un) ?

Je me rappelle que Toggg râlait sur la distinction action / exec qu'il
estimait artificielle et peu pratique (de mémoire ça l'avait gêné pour
cfg, avec le pb d'appel à la fois depuis la partie publique et la
partie privée)
Actuellement si j'ai tout compris un exec/toto.php est simplement une
action/toto.php qui ne se fait que dans la partie privée, non ?

Merci,

.Gilles
--

quitte à avoir juste un formulaire dedans (le formulaire etant le truc à
utiliser pour faire un traitement ET renvoyer un contenu).
> Par quel mécanisme est-ce qu'on peut avoir des traitements appelés
> depuis l'espace public sans avoir besoin d'être authentifié ?
>
il ne faut pas confondre action (traitement) et exec (eventuellement
retour après traitement)
tu peux appeler une action et rediriger vers un squelette (sauf quelques
exceptions pénibles...)
> Si ce n'est pas un exec= est-ce autre chose ?
>

ben, en toute logique, dans l'epace public, c'est un formulaire.
Si tu as un appel Ajax, tu peux appeler spip.php?page=toto avec dans
toto.html des boucle ou un formulaire.

apres, si tu veux utiliser des traitements (action) de l'espace privé
depuis l'espace public, c'est dans la construction de l'url qu'il faut
lui passer un redirect (squelette dans ce cas)

@++

_______________________________________________
spip-zone@rezo.net - http://listes.rezo.net/mailman/listinfo/spip-zone

Gilles Vincent a écrit :

En regardant d'autres fichiers je me suis aperçu qu'ils étaient
constitués principalement d'une fonction de type
action-auth_perso-dist(), d'ou mes 2 questions :

- Comment est-ce possible que cela fonctionne sans cette fonction ?
  

non, ca ne pourra pas fonctionner, il faut une fonction comme celle la , ou alors action_auth_perso ()

- Est-ce que l'appel à cette fonction se fait après la création du
cache (s'il y en a un) ?
  

ben je ne pense pas qu'une action soit appellé dans la partie publique... enfin vu le code de certains de ces fichiers ca me paraitrai bizarre. mais bon je me trompe peut-être :slight_smile:

Actuellement si j'ai tout compris un exec/toto.php est simplement une
action/toto.php qui ne se fait que dans la partie privée, non ?
  

ce que je sais c'est que chaque page exec ( qui contient des formulaires ) , posséde un champ action qui renvoi vers le fichier du même nom... et éxécute la fonction du même nom que le fichier ( ou en rajoutant_dist a la fin).

Yoann NOGUES a écrit :

Gilles Vincent a écrit :
  

En regardant d'autres fichiers je me suis aperçu qu'ils étaient
constitués principalement d'une fonction de type
action-auth_perso-dist(), d'ou mes 2 questions :

- Comment est-ce possible que cela fonctionne sans cette fonction ?
  

non, ca ne pourra pas fonctionner, il faut une fonction comme celle la , ou alors action_auth_perso ()
  
c'est le principe de l'action : appeler cette methode après avoir verifé le "ticket".

- Est-ce que l'appel à cette fonction se fait après la création du
cache (s'il y en a un) ?
  

ben je ne pense pas qu'une action soit appellé dans la partie publique...

si, si, bien sur qu'on peut.

enfin vu le code de certains de ces fichiers ca me paraitrai bizarre. mais bon je me trompe peut-être :slight_smile:
  

ben avec les crayons, on modifie pas mal de chose depuis le site public, non ?
maintenant que le systeme d'autorisation est en place, on fait ce qu'on veut !

Actuellement si j'ai tout compris un exec/toto.php est simplement une
action/toto.php qui ne se fait que dans la partie privée, non ?
  

ce que je sais c'est que chaque page exec ( qui contient des formulaires ) , posséde un champ action qui renvoi vers le fichier du même nom... et éxécute la fonction du même nom que le fichier ( ou en rajoutant_dist a la fin).
  

exec c'est l'affichage du formulaire
actuion, c'est son traitement (au ssubmit).
en general, action redirige sur exec après traitement.
mais tu peux aussi avoir un bout de squelette qui genere le formulaire et rediriger l'action sur une page qui n'appelle que ce squelette.

@++

ben avec les crayons, on modifie pas mal de chose depuis le site public, non ?

j'avais un peu oublier les crayons :slight_smile: