module config et role webmaster
[mtweb] / mw / app / mods / users / identification.php
index c7bd19a..db3b68c 100644 (file)
@@ -6,27 +6,62 @@
     }
 
     function login(&$env){
-      $data = $env->data();
-      if($data->login(trim($_POST['login']), trim($_POST['pass']))){
-        $env->redirect(
-          isset($_POST["from"]) ? urldecode($_POST["from"]) : $env->url(),
-          "Vous êtes maintenant identifié en tant que ".$_POST['login']
-        );
+      if($_POST){
+        $data = $env->data();
+        if($data->login(trim($_POST['login']), trim($_POST['pass']))){
+          $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 êtes maintenant identifié en tant que ".$_POST['login']
+          );
+        }
+        else $env->message("Idantifiants incorrects");
       }
-      else $env->message("Identifiants incorrects");
     }
 
     function logout(&$env){
       $data = $env->data();
       if($data->logout()){
         $env->redirect(
-          $env->url(),
-          "Vous n'êtes plus identifié sur le site"
+          $env->url("users/identification/check_logout"),
+          "Deconnexion en cours...",
+          0
         );
       }
       else $env->message("Erreur lors de la deconnection. il se peut que vous soyez encore identifié");
     }
 
+    function check_logout(&$env){
+      if($env->user()){
+        $env->erreur("deconnexion impossible. vous êtes toujours identifié sur le site.");
+      }
+      else{
+        $redirect_action = "index";
+        $redirect_params = array();
+        if(isset($_SESSION["action_after_logout"])){
+          $redirect_action = $_SESSION["action_after_logout"];
+          unset($_SESSION["action_after_logout"]);
+        }
+        if(isset($_SESSION["params_after_logout"])){
+          if(!($redirect_params = @unserialize($_SESSION["params_after_logout"]))) $redirect_params = array();
+          unset($_SESSION["params_after_logout"]);
+        }
+        $env->redirect(
+          $env->url($redirect_action, $redirect_params),
+          "Vous n'êtes plus identifié sur le site"
+        );
+      }
+    }
+
   }
 
 ?>
\ No newline at end of file