diff options
author | Simon Rettberg | 2015-02-09 19:03:26 +0100 |
---|---|---|
committer | Simon Rettberg | 2015-02-09 19:03:26 +0100 |
commit | 3262dfc8be9356bced77419652306bc507025fec (patch) | |
tree | 8384ca8493cea707dfd4878fcb68c7c56f126731 /inc/configtgz.inc.php | |
parent | Add sshd config module (diff) | |
download | slx-admin-3262dfc8be9356bced77419652306bc507025fec.tar.gz slx-admin-3262dfc8be9356bced77419652306bc507025fec.tar.xz slx-admin-3262dfc8be9356bced77419652306bc507025fec.zip |
Add support for editing existing configs
Diffstat (limited to 'inc/configtgz.inc.php')
-rw-r--r-- | inc/configtgz.inc.php | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/inc/configtgz.inc.php b/inc/configtgz.inc.php index 2082155c..231960bb 100644 --- a/inc/configtgz.inc.php +++ b/inc/configtgz.inc.php @@ -37,6 +37,46 @@ class ConfigTgz } return true; } + + public function getModuleIds() + { + $ret = array(); + foreach ($this->modules as $module) { + $ret[] = $module['moduleid']; + } + return $ret; + } + + public function update($title, $moduleIds) + { + if (!is_array($moduleIds)) + return false; + $this->configTitle = $title; + $this->modules = array(); + // Get all modules to put in config + $idstr = '0'; // Passed directly in query. Make sure no SQL injection is possible + foreach ($moduleIds as $module) { + $idstr .= ',' . (int)$module; // Casting to int should make it safe + } + $res = Database::simpleQuery("SELECT moduleid, filepath, status FROM configtgz_module WHERE moduleid IN ($idstr)"); + // Delete old connections + Database::exec("DELETE FROM configtgz_x_module WHERE configid = :configid", array('configid' => $this->configId)); + // Make connection + while ($row = $res->fetch(PDO::FETCH_ASSOC)) { + Database::exec("INSERT INTO configtgz_x_module (configid, moduleid) VALUES (:configid, :moduleid)", array( + 'configid' => $this->configId, + 'moduleid' => $row['moduleid'] + )); + $this->modules[] = $row; + } + // Update name + Database::exec("UPDATE configtgz SET title = :title, status = :status WHERE configid = :configid LIMIT 1", array( + 'configid' => $this->configId, + 'title' => $title, + 'status' => 'OUTDATED' + )); + return true; + } public static function insert($title, $moduleIds) { |