diff options
author | Simon Rettberg | 2016-06-08 18:33:30 +0200 |
---|---|---|
committer | Simon Rettberg | 2016-06-08 18:33:30 +0200 |
commit | ffffab643e031524b6fdfe0c39adae1f6c8e9c4d (patch) | |
tree | 84e55c5a7ea0e02481b9f44730814ae788f05e12 /modules-available/sysconfig | |
parent | [dashboard] Remove needsSchemaUpdate call (diff) | |
download | slx-admin-ffffab643e031524b6fdfe0c39adae1f6c8e9c4d.tar.gz slx-admin-ffffab643e031524b6fdfe0c39adae1f6c8e9c4d.tar.xz slx-admin-ffffab643e031524b6fdfe0c39adae1f6c8e9c4d.zip |
[install] Implement install scripts for most modules
Diffstat (limited to 'modules-available/sysconfig')
6 files changed, 105 insertions, 15 deletions
diff --git a/modules-available/sysconfig/inc/configmodule/adauth.inc.php b/modules-available/sysconfig/inc/configmodule/adauth.inc.php index a03be43c..180ac717 100644 --- a/modules-available/sysconfig/inc/configmodule/adauth.inc.php +++ b/modules-available/sysconfig/inc/configmodule/adauth.inc.php @@ -2,9 +2,9 @@ ConfigModule::registerModule( ConfigModule_AdAuth::MODID, // ID - Dictionary::translateFile('config-module', 'adAuth_title'), // Title - Dictionary::translateFile('config-module', 'adAuth_description'), // Description - Dictionary::translateFile('config-module', 'group_authentication'), // Group + Dictionary::translateFileModule('sysconfig', 'config-module', 'adAuth_title'), // Title + Dictionary::translateFileModule('sysconfig', 'config-module', 'adAuth_description'), // Description + Dictionary::translateFileModule('sysconfig', 'config-module', 'group_authentication'), // Group true // Only one per config? ); diff --git a/modules-available/sysconfig/inc/configmodule/branding.inc.php b/modules-available/sysconfig/inc/configmodule/branding.inc.php index 479b406c..4a9718d6 100644 --- a/modules-available/sysconfig/inc/configmodule/branding.inc.php +++ b/modules-available/sysconfig/inc/configmodule/branding.inc.php @@ -2,9 +2,9 @@ ConfigModule::registerModule( ConfigModule_Branding::MODID, // ID - Dictionary::translateFile('config-module', 'branding_title'), // Title - Dictionary::translateFile('config-module', 'branding_description'), // Description - Dictionary::translateFile('config-module', 'group_branding'), // Group + Dictionary::translateFileModule('sysconfig', 'config-module', 'branding_title'), // Title + Dictionary::translateFileModule('sysconfig', 'config-module', 'branding_description'), // Description + Dictionary::translateFileModule('sysconfig', 'config-module', 'group_branding'), // Group true // Only one per config? ); diff --git a/modules-available/sysconfig/inc/configmodule/customodule.inc.php b/modules-available/sysconfig/inc/configmodule/customodule.inc.php index 09b621cc..8d1b6bf0 100644 --- a/modules-available/sysconfig/inc/configmodule/customodule.inc.php +++ b/modules-available/sysconfig/inc/configmodule/customodule.inc.php @@ -2,9 +2,9 @@ ConfigModule::registerModule( ConfigModule_CustomModule::MODID, // ID - Dictionary::translateFile('config-module', 'custom_title'), // Title - Dictionary::translateFile('config-module', 'custom_description'), // Description - Dictionary::translateFile('config-module', 'group_generic'), // Group + Dictionary::translateFileModule('sysconfig', 'config-module', 'custom_title'), // Title + Dictionary::translateFileModule('sysconfig', 'config-module', 'custom_description'), // Description + Dictionary::translateFileModule('sysconfig', 'config-module', 'group_generic'), // Group false, // Only one per config? 100 // Sort order ); diff --git a/modules-available/sysconfig/inc/configmodule/ldapauth.inc.php b/modules-available/sysconfig/inc/configmodule/ldapauth.inc.php index 0f386033..ed1a47c3 100644 --- a/modules-available/sysconfig/inc/configmodule/ldapauth.inc.php +++ b/modules-available/sysconfig/inc/configmodule/ldapauth.inc.php @@ -2,9 +2,9 @@ ConfigModule::registerModule( ConfigModule_LdapAuth::MODID, // ID - Dictionary::translateFile('config-module', 'ldapAuth_title'), // Title - Dictionary::translateFile('config-module', 'ldapAuth_description'), // Description - Dictionary::translateFile('config-module', 'group_authentication'), // Group + Dictionary::translateFileModule('sysconfig', 'config-module', 'ldapAuth_title'), // Title + Dictionary::translateFileModule('sysconfig', 'config-module', 'ldapAuth_description'), // Description + Dictionary::translateFileModule('sysconfig', 'config-module', 'group_authentication'), // Group true // Only one per config? ); diff --git a/modules-available/sysconfig/inc/configmodule/sshconfig.inc.php b/modules-available/sysconfig/inc/configmodule/sshconfig.inc.php index b1d58153..8814b86b 100644 --- a/modules-available/sysconfig/inc/configmodule/sshconfig.inc.php +++ b/modules-available/sysconfig/inc/configmodule/sshconfig.inc.php @@ -2,9 +2,9 @@ ConfigModule::registerModule( ConfigModule_SshConfig::MODID, // ID - Dictionary::translateFile('config-module', 'sshconfig_title'), // Title - Dictionary::translateFile('config-module', 'sshconfig_description'), // Description - Dictionary::translateFile('config-module', 'group_sshconfig'), // Group + Dictionary::translateFileModule('sysconfig', 'config-module', 'sshconfig_title'), // Title + Dictionary::translateFileModule('sysconfig', 'config-module', 'sshconfig_description'), // Description + Dictionary::translateFileModule('sysconfig', 'config-module', 'group_sshconfig'), // Group true // Only one per config? ); diff --git a/modules-available/sysconfig/install.inc.php b/modules-available/sysconfig/install.inc.php new file mode 100644 index 00000000..0b7bbc1b --- /dev/null +++ b/modules-available/sysconfig/install.inc.php @@ -0,0 +1,90 @@ +<?php + +$res = array(); + +$res[] = tableCreate('configtgz', " + `configid` int(10) unsigned NOT NULL AUTO_INCREMENT, + `title` varchar(200) NOT NULL, + `filepath` varchar(255) NOT NULL, + `status` enum('OK','OUTDATED','MISSING') NOT NULL DEFAULT 'MISSING', + PRIMARY KEY (`configid`) +"); + +$res[] = tableCreate('configtgz_module', " + `moduleid` int(10) unsigned NOT NULL AUTO_INCREMENT, + `title` varchar(200) NOT NULL, + `moduletype` varchar(16) NOT NULL, + `filepath` varchar(250) NOT NULL, + `contents` text NOT NULL, + `version` int(10) unsigned NOT NULL DEFAULT '0', + `status` enum('OK','MISSING','OUTDATED') NOT NULL DEFAULT 'MISSING', + PRIMARY KEY (`moduleid`), + KEY `title` (`title`), + KEY `moduletype` (`moduletype`,`title`) +"); + +$res[] = tableCreate('configtgz_x_module', " + `configid` int(10) unsigned NOT NULL, + `moduleid` int(10) unsigned NOT NULL, + PRIMARY KEY (`configid`,`moduleid`), + KEY `moduleid` (`moduleid`) +"); + + +// Constraints +if (in_array(UPDATE_DONE, $res)) { + Database::exec("ALTER TABLE `configtgz_x_module` + ADD CONSTRAINT `configtgz_x_module_ibfk_1` FOREIGN KEY (`configid`) REFERENCES `configtgz` (`configid`) ON DELETE CASCADE, + ADD CONSTRAINT `configtgz_x_module_ibfk_2` FOREIGN KEY (`moduleid`) REFERENCES `configtgz_module` (`moduleid`)"); +} + +// Update path + +// ##### 2014-12-12 +// Rename config modules +Database::exec("UPDATE configtgz_module SET moduletype = 'Branding' WHERE moduletype = 'BRANDING'"); +Database::exec("UPDATE configtgz_module SET moduletype = 'AdAuth' WHERE moduletype = 'AD_AUTH'"); +Database::exec("UPDATE configtgz_module SET moduletype = 'CustomModule' WHERE moduletype = 'custom'"); + +// ####################### +// ##### 2015-01-16 +// Extend config module db tables +tableDropColumn('configtgz_module', 'haschanged'); +if (!tableHasColumn('configtgz_module', 'version')) { + if (Database::exec("ALTER TABLE `configtgz_module` ADD `version` INT( 10 ) UNSIGNED NOT NULL DEFAULT '0'") === false) { + finalResponse(UPDATE_FAILED, 'Could not add version to configtgz_module: ' . Database::lastError()); + } + $res[] = UPDATE_DONE; +} +if (!tableHasColumn('configtgz_module', 'status')) { + if (Database::exec("ALTER TABLE `configtgz_module` ADD `status` ENUM( 'OK', 'MISSING', 'OUTDATED' ) NOT NULL DEFAULT 'MISSING'") === false) { + finalResponse(UPDATE_FAILED, 'Could not add status to configtgz_module: ' . Database::lastError()); + } + $res[] = UPDATE_DONE; +} +if (!tableHasColumn('configtgz', 'status')) { + if (Database::exec("ALTER TABLE `configtgz` ADD `status` ENUM( 'OK', 'OUTDATED', 'MISSING' ) NOT NULL DEFAULT 'MISSING'") === false) { + finalResponse(UPDATE_FAILED, 'Could not add status to configtgz: ' . Database::lastError()); + } + $res[] = UPDATE_DONE; +} + +// ----- rebuild AD configs ------ +// TEMPORARY HACK; Rebuild AD configs.. move somewhere else +Module::isAvailable('sysconfig'); +$list = array_merge(ConfigModule::getAll('AdAuth'), ConfigModule::getAll('LdapAuth')); +if ($list === false) { + EventLog::warning('Could not regenerate AD/LDAP configs - please do so manually'); +} else { + foreach ($list as $ad) { + $ad->generate(false); + } +} + +// Create response for browser + +if (in_array(UPDATE_DONE, $res)) { + finalResponse(UPDATE_DONE, 'Tables created successfully'); +} + +finalResponse(UPDATE_NOOP, 'Everything already up to date'); |