示例#1
0
 function setup($dbHost, $dbUsername, $dbPassword, $dbName, $controlThreads, $controlInterval)
 {
     if ($dbHost == "" || $dbUsername == "" || $dbPassword == "" || $dbName == "") {
         throw new Exception("La configuration de Base de données est incomplète");
     }
     /*if ($controlThreads == "" || $controlInterval == "" || !is_numeric($controlThreads) || !is_numeric($controlInterval))
       throw new Exception("La configuration de Contrôle est incomplète");*/
     if ($controlThreads == "" || !is_numeric($controlThreads)) {
         throw new Exception("Le champ Threads de contrôle est vide");
     }
     if ($controlInterval == "" || !is_numeric($controlInterval)) {
         throw new Exception("Le champ Intervalle de contrôle est vide");
     }
     $cm = new ConfigManager(ADMIN_CONFIG_PATH);
     $cm->loadINIFile();
     $cm->setConfig('database', 'db_host', $dbHost);
     $cm->setConfig('database', 'db_auth_username', $dbUsername);
     $cm->setConfig('database', 'db_auth_password', $dbPassword);
     $cm->setConfig('database', 'db_auth_dbname', $dbName);
     $cm->setConfig('control', 'ac_control_threads', $controlThreads);
     $cm->setConfig('control', 'ac_control_frequency', $controlInterval);
     $cm->saveINIFile();
     $_SESSION["message"] = array("type" => "success", "title" => "Configuration terminée", "descr" => "La configuration a été modifiée avec succès.");
     header('Location: ' . '/monitoring/?v=admin&tab=config');
     exir(0);
 }
示例#2
0
 function editprofile($username, $email, $email_active, $phone, $phone_active, $cur_password, $password, $new_password)
 {
     if (!isset($email_active)) {
         $email_active = 0;
     }
     if (!isset($phone_active)) {
         $phone_active = 0;
     }
     // Get the old version
     $sth = $this->pdo->prepare("SELECT * FROM users WHERE users.id = ?");
     $sth->execute(array($_SESSION["user_id"]));
     $res = $sth->fetch(PDO::FETCH_ASSOC);
     $user = $res;
     $id = $_SESSION["user_id"];
     if (isset($this->pdo)) {
         if ($cur_password != "") {
             if ($password == "" || $new_password == "") {
                 throw new Exception("Vous devez indiquer un nouveau mot de passe.");
             }
             if ($password != $new_password) {
                 throw new Exception("La vérification du mot de passe a échoué. Le mot de passe de confirmation doit être le même" . "que le mot de passe dans le champ \"Nouveau mot de passe\".");
             }
             // Update password and all others information.
             $sth = $this->pdo->prepare("UPDATE users SET username = ?, email = ?, email_active = ?, phone = ?, phone_active = ? WHERE id = ?");
             $res = $sth->execute(array($username, $email, $email_active, $phone, $phone_active, $id));
             if ($res == 0) {
                 throw new Exception("Impossible de modifier votre profil.");
             }
             if ($_SESSION["user_id"] == -1) {
                 // It's the root user, so let's edit the .ini file
                 $cm = new ConfigManager(ADMIN_CONFIG_PATH);
                 $cm->loadINIFile();
                 $cm->setConfig("superadmin", "ac_superadmin_username", $username);
                 $cm->setConfig("superadmin", "ac_superadmin_password", sha1($new_password));
                 $cm->setConfig("superadmin", "ac_superadmin_email", $email);
                 $cm->setConfig("superadmin", "ac_superadmin_email_active", $email_active);
                 $cm->setConfig("superadmin", "ac_superadmin_phone", $phone);
                 $cm->setConfig("superadmin", "ac_superadmin_phone_active", $phone_active);
                 $cm->saveINIFile();
             }
             $_SESSION["message"] = array("type" => "success", "title" => "Modification de votre profil terminé", "descr" => "Vos informations de profil a été modifié. Votre mot de passe a été modifié.");
             header('Location: ' . '/monitoring/?v=profile');
         } else {
             // No need to change password, so let's go !
             $sth = $this->pdo->prepare("UPDATE users SET username = ?, email = ?, email_active = ?, phone = ?, phone_active = ? WHERE id = ?");
             $res = $sth->execute(array($username, $email, $email_active, $phone, $phone_active, $id));
             if ($res == 0) {
                 throw new Exception("Impossible de modifier votre profil.");
             }
             if ($_SESSION["user_id"] == -1) {
                 // It's the root user, so let's edit the .ini file
                 $cm = new ConfigManager(ADMIN_CONFIG_PATH);
                 $cm->loadINIFile();
                 $cm->setConfig("superadmin", "ac_superadmin_username", $username);
                 $cm->setConfig("superadmin", "ac_superadmin_password", sha1($new_password));
                 $cm->setConfig("superadmin", "ac_superadmin_email", $email);
                 $cm->setConfig("superadmin", "ac_superadmin_email_active", $email_active);
                 $cm->setConfig("superadmin", "ac_superadmin_phone", $phone);
                 $cm->setConfig("superadmin", "ac_superadmin_phone_active", $phone_active);
                 $cm->saveINIFile();
             }
             $_SESSION["message"] = array("type" => "success", "title" => "Modification de votre profil terminé", "descr" => "Vos informations de profil a été modifié. Votre mot de passe n'a PAS été modifié.");
             header('Location: ' . '/monitoring/?v=profile');
         }
     } else {
         // Database not connected. Only for SuperAdmin.
         if ($_SESSION["user_id"] != -1) {
             throw new Exception("Database not connected");
         }
         // It's the root user, so let's edit the .ini file
         $cm = new ConfigManager();
         $cm->loadINIFile();
         $cm->setConfig("superadmin", "ac_superadmin_username", $username);
         $cm->setConfig("superadmin", "ac_superadmin_password", sha1password($new_password));
         $cm->setConfig("superadmin", "ac_superadmin_email", $email);
         $cm->setConfig("superadmin", "ac_superadmin_email_active", $email_active);
         $cm->setConfig("superadmin", "ac_superadmin_phone", $phone);
         $cm->setConfig("superadmin", "ac_superadmin_phone_active", $phone_active);
         $cm->saveINIFile();
         $_SESSION["message"] = array("type" => "success", "title" => "Modification d'utilisateur terminé", "descr" => "L'utilisateur a été modifié. Le mot de passe n'a PAS été modifié.");
         header('Location: ' . '/monitoring/?v=profile');
     }
 }