mecanisme d'upgrade
[mtweb] / mw / app / controllers / upgrade / index.php
diff --git a/mw/app/controllers/upgrade/index.php b/mw/app/controllers/upgrade/index.php
new file mode 100644 (file)
index 0000000..ecbb576
--- /dev/null
@@ -0,0 +1,45 @@
+<?php
+
+  class mw_upgrade_index extends mw_controller{
+
+    function validate(){
+      $env = $this->env();
+      $env->load_webmaster_session();
+      return true;
+    }
+
+    function index(){
+      $env = $this->env();
+      $data = $env->data();
+      $env->set_out("data_version", $data->version("mtweb"));
+      $env->set_out("env_version", $env->version("mtweb"));
+    }
+
+    function confirm_upgrade(){
+      $env = $this->env();
+      if(!($user = $env->user())){
+        $env->redirect($env->url("upgrade"), "", 0);
+        return;
+      }
+      if(!($webmaster_user = $env->get_webmaster_user())){
+        $env->erreur("impossible de lire le user webmaster");
+        return;
+      }
+      if(
+            ($user["login"] != $webmaster_user["login"])
+        ||  ($user["password"] != $webmaster_user["password"])
+      ){
+        $env->erreur("identification incorrecte");
+        return;
+      }
+      if(($res = $env->do_data_upgrade()) !== true){
+        $env->erreur("Erreur durant l'upgrade: ".$res);
+        return;
+      }
+      $env->redirect(
+        $env->url(),
+        "La base a été mise à jour"
+      );
+    }
+
+  }