nouveau module "models" dans l'environnement
[mtweb] / mw / app / observers / mw_observer_login.php
diff --git a/mw/app/observers/mw_observer_login.php b/mw/app/observers/mw_observer_login.php
new file mode 100644 (file)
index 0000000..250bf0b
--- /dev/null
@@ -0,0 +1,39 @@
+<?php
+
+  class mw_observer_login extends mw_observer{
+
+    function action_permission_denied(){
+      $env = $this->env();
+      if(!$env->user()){
+        $env->erreur("Merci de vous identifier", "users/identification");
+        $_SESSION["action_after_login"] = "";
+        $params = $_GET;
+        if(isset($params[$env->param("e")])){
+          $_SESSION["action_after_login"] = $params[$env->param("e")];
+          unset($params[$env->param("e")]);
+        }
+        $_SESSION["params_after_login"] = @serialize($params);
+      }
+    }
+
+    function user_login($params){
+      $env = $this->env();
+      $redirect_action = "index";
+      $redirect_params = array();
+      if(isset($_SESSION["action_after_login"])){
+        $redirect_action = $_SESSION["action_after_login"];
+        unset($_SESSION["action_after_login"]);
+      }
+      if(isset($_SESSION["params_after_login"])){
+        if(!($redirect_params = @unserialize($_SESSION["params_after_login"]))) $redirect_params = array();
+        unset($_SESSION["params_after_login"]);
+      }
+      $env->redirect(
+        $env->url($redirect_action, $redirect_params),
+        "Vous &ecirc;tes maintenant identifi&eacute; en tant que ".$params["user"]["login"]
+      );
+    }
+
+  }
+
+?>
\ No newline at end of file