Project

General

Profile

Evolution #3813

De nouveaux pipelines ?

Added by phe nix over 4 years ago. Updated 14 days ago.

Status:
Nouveau
Priority:
Normal
Assignee:
-
Category:
-
Target version:
Start date:
08/03/2016
Due date:
% Done:

0%

Resolution:

Description

Hello,

Je souhaiterai ajouter 2 pipelines au core de SPIP :

- post_login qui serai exécuté après le connexion d'un utilisateur, utile pour par exemple compléter les variables de session.
- post_inscription qui serait exécuté après qu'un utilisateur ai validé son inscription (dans l'idéal il faudrait aussi passer par post_login).

Cela fait plusieurs fois que j'ai besoin de ce type de pipelines, et malheureusement il faut bricoler d'autres pipelines pour arriver à un résultat similaire (pour faire post_inscription il faut passer par post_edition en fessant des testes sur les statut d'auteurs...).

Une bonne idée ?

History

#1 Updated by b b over 4 years ago

  • Target version set to 3.2

#2 Updated by cedric - 16 days ago

  • Target version changed from 3.2 to 3.3
  • preparer_visiteur_session permet de completer la session d'un auteur (à chaque chargement de la session donc et pas seulement post-login)
  • le pipeline formulaire_traiter sur le formulaire login permet aussi d'avoir la main lors de sa connexion post login donc (et donc une seule et unique fois)
  • pour la post inscription c'est en effet le pipeline post_edition, action=instituer et statut_ancien='nouveau'

On pourrait ajouter un second appel post_edition plus explicite

$ git diff
diff --git a/ecrire/action/inscrire_auteur.php b/ecrire/action/inscrire_auteur.php
index 8ed27a6a27..050685ea1b 100644
--- a/ecrire/action/inscrire_auteur.php
+++ b/ecrire/action/inscrire_auteur.php
@@ -317,7 +317,23 @@ function confirmer_statut_inscription($auteur) {
     autoriser_exception('modifier', 'auteur', $auteur['id_auteur']);
     include_spip('action/editer_auteur');
     // changer le statut
-    auteur_modifier($auteur['id_auteur'], array('statut' => $s));
+    $set = array('statut' => $s);
+    auteur_modifier($auteur['id_auteur'], $set);
+
+    // on appelle une seconde fois post_edition avec l'info confirmer_statut_inscription
+    pipeline('post_edition',
+        array(
+            'args' => array(
+                'table' => 'spip_auteurs',
+                'id_objet' => $auteur['id_auteur'],
+                'action' => 'confirmer_statut_inscription',
+                'statut_ancien' => $auteur['statut'],
+            ),
+            'data' => $set
+        )
+    );
+

mais avoir un double appel sur post_edition peut etre embetant car vu des clients du pipeline c'est comme si on faisait deux fois une modif du statut :(

Et sinon il faudrait créer un nouveau pipeline, mais je ne suis pas sur qu'il apporte grand chose de plus...

#3 Updated by b b 16 days ago

Puisqu'on peut faire ce qu'on souhaite avec l'existant, amha on peut repousser à 3.4 ou fermer.

#4 Updated by cedric - 14 days ago

  • Target version changed from 3.3 to 3.4

Also available in: Atom PDF