Hello,
j'ai voulu faire un systeme de notification sur le plugin agenda et je coince un peu sur les actions.
Le but est d'envoyer un mail aux admins quand un evenement est ajouté, avec dans le mail, un lien permettant d'ajouter un mot clé.
Tout se passe bien si l'auteur est deja authentifié quand il clique sur le lien, mais s'il ne l'est pas, ou si il l'est avec un mauvais utilisateur, je voulais faire un logout / login / rediriger vers l'action.
Je me suis donc fait une fonction securiser_action qui gere les appels en get avec une redirection quand ca marche et un logout quand ca coince:
function inc_securiser_action($action='', $arg='', $redirect="", $mode=false, $att='')
{
include_spip('inc/securiser_action');
if ($action){
return securiser_action_auteur($action, $arg, $redirect, $mode, $att);
}
else {
$arg = _request('arg');
$hash = _request('hash');
$action = _request('action');
if (verifier_action_auteur("$action-$arg", $hash))
return $arg;
else {
include_spip('inc/minipres');
include_spip('inc/headers');
$url=$_SERVER['REQUEST_URI'];
spip_log("logout verifier_action_auteur($action-$arg, $hash)");
redirige_par_entete("spip.php?action=logout&url=".urlencode("spip.php?page=login&url=".urlencode($url)));
}
}
}
et un systeme de notification (qui marche, puisque quand on est authentifié, le mot clé s'ajoute bien):
Mais ca ne marche pas : j'ai bien le logout, mais après le login, l'action n'est pas reconnue, comme si arg etait vide ou que le hash n'etait plus valide.
l'url initiale est :
spip.php?action=editer_mot&arg=61,evenements,id_evenement,evenement,1894&hash=1dc4f41cb9172467137fe3e571f599f5&redirect=spip.php%3Farticle55
si je ne suis pas authentifié, je suis redirigé (après logout) vers :
spip.php?page=login&url=%2Fspip.php%3Faction%3Dediter_mot%26arg%3D61%2C%2Cevenements%2Cid_evenement%2Cevenement%2C1894%26hash%3D1dc4f41cb9172467137fe3e571f599f5%26redirect%3Dspip.php%253Farticle55
Mais quand je rentre mon mot de passe, l'action n'est pas reconnue :
Pourtant, l'action a l'air bonne avant le logout…
(pid 25419) login de stephane vers /spip.php?action=editer_mot&arg=63,evenements,id_evenement,evenement,1894&hash=6fd08c4c035ffb75a05dbc9c6bf7de39&redirect=spip.php%3Farticle55
(pid 25419) redirige: /spip.php?action=editer_mot&arg=63,evenements,id_evenement,evenement,1894&hash=6fd08c4c035ffb75a05dbc9c6bf7de39&redirect=spip.php%3Farticle55
(pid 25419) logout verifier_action_auteur(editer_mot-63,evenements,id_evenement,evenement,1894, 6fd08c4c035ffb75a05dbc9c6bf7de39)
(pid 25419) redirige: spip.php?action=logout&url=spip.php%3Fpage%3Dlogin%26url%3D%252Fspip.php%253Faction%253Dediter_mot%2526arg%253D63%252C%252Cevenements%252Cid_evenement%252Cevenement%252C1894%2526hash%253D6fd08c4c035ffb75a05dbc9c6bf7de39%2526redirect%253Dspip.php%25253Farticle55
(pid 25419) logout spip.php?page=login&url=%2Fspip.php%3Faction%3Dediter_mot%26arg%3D63%2C%2Cevenements%2Cid_evenement%2Cevenement%2C1894%26hash%3D6fd08c4c035ffb75a05dbc9c6bf7de39%26redirect%3Dspip.php%253Farticle553
(pid 25419) redirige: spip.php?page=login&url=%2Fspip.php%3Faction%3Dediter_mot%26arg%3D63%2C%2Cevenements%2Cid_evenement%2Cevenement%2C1894%26hash%3D6fd08c4c035ffb75a05dbc9c6bf7de39%26redirect%3Dspip.php%253Farticle55
Pourtant, après login, j'ai bien dans le log :
spip.php?action=editer_mot&arg=59,evenements,id_evenement,evenement,1894&hash=019818161bbebbdf25a2ec279ab953ba&redirect=spip.php&article55
Quelqu'un a une idée ?
@++