summaryrefslogtreecommitdiffstats
path: root/inc
diff options
context:
space:
mode:
authorSimon Rettberg2015-02-09 19:03:26 +0100
committerSimon Rettberg2015-02-09 19:03:26 +0100
commit3262dfc8be9356bced77419652306bc507025fec (patch)
tree8384ca8493cea707dfd4878fcb68c7c56f126731 /inc
parentAdd sshd config module (diff)
downloadslx-admin-3262dfc8be9356bced77419652306bc507025fec.tar.gz
slx-admin-3262dfc8be9356bced77419652306bc507025fec.tar.xz
slx-admin-3262dfc8be9356bced77419652306bc507025fec.zip
Add support for editing existing configs
Diffstat (limited to 'inc')
-rw-r--r--inc/configtgz.inc.php40
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)
{