diff options
author | Simon Rettberg | 2016-08-29 17:13:19 +0200 |
---|---|---|
committer | Simon Rettberg | 2016-08-29 17:13:19 +0200 |
commit | e2c1c6265b43d64442473225b0b01f829f7dec67 (patch) | |
tree | d4d55e9aa0ece5b91c97d5d7cff47be2ea593183 /modules-available/baseconfig_bwidm/hooks | |
parent | [property] Make generic getter and setter public; seems best option for modul... (diff) | |
download | slx-admin-e2c1c6265b43d64442473225b0b01f829f7dec67.tar.gz slx-admin-e2c1c6265b43d64442473225b0b01f829f7dec67.tar.xz slx-admin-e2c1c6265b43d64442473225b0b01f829f7dec67.zip |
[baseconfig_bwidm] New module: baseconfig hook for bwidm configuration
Diffstat (limited to 'modules-available/baseconfig_bwidm/hooks')
-rw-r--r-- | modules-available/baseconfig_bwidm/hooks/cron.inc.php | 39 | ||||
-rw-r--r-- | modules-available/baseconfig_bwidm/hooks/translation.inc.php | 41 |
2 files changed, 80 insertions, 0 deletions
diff --git a/modules-available/baseconfig_bwidm/hooks/cron.inc.php b/modules-available/baseconfig_bwidm/hooks/cron.inc.php new file mode 100644 index 00000000..32c1bd73 --- /dev/null +++ b/modules-available/baseconfig_bwidm/hooks/cron.inc.php @@ -0,0 +1,39 @@ +<?php + +define('PROP_KEY_BWIDM', 'bwlp.bwidm.fetcher'); +define('BWLP_SETTINGS_JSON', '/var/cache/slx-admin/baseconfig-bwidm_settings.json'); + +call_user_func(function() +{ + if (Property::get(PROP_KEY_BWIDM) !== false && file_exists(BWLP_SETTINGS_JSON)) + return; + Property::set(PROP_KEY_BWIDM, true, 240); + $ret = Download::asString('https://bwlp-masterserver.ruf.uni-freiburg.de/webif/pam.php', 10, $code); + if (!preg_match_all('/^([^=]+)=/m', $ret, $out)) + return; + $data = array("SLX_BWIDM_AUTH" => array( + "catid" => "sysconfig", + "defaultvalue" => "no", + "permissions" => "2", + "validator" => "list:no|selective|yes", + "shadows" => array( + "no" => array( + "SLX_BWIDM_ORGS" + ), + "yes" => array( + "SLX_BWIDM_ORGS" + ) + ) + ), + "SLX_BWIDM_ORGS" => array( + "catid" => "sysconfig", + "defaultvalue" => "", + "permissions" => "2", + "validator" => "multilist:" . implode('|', $out[1]) + ) + ); + if (!file_put_contents(BWLP_SETTINGS_JSON, json_encode($data))) { + $error = error_get_last(); + EventLog::warning('Could not write bwIDM data to ' . BWLP_SETTINGS_JSON, $error['message']); + } +});
\ No newline at end of file diff --git a/modules-available/baseconfig_bwidm/hooks/translation.inc.php b/modules-available/baseconfig_bwidm/hooks/translation.inc.php new file mode 100644 index 00000000..00898075 --- /dev/null +++ b/modules-available/baseconfig_bwidm/hooks/translation.inc.php @@ -0,0 +1,41 @@ +<?php + +$HANDLER = array(); + +/** + * List of valid subsections + */ +$HANDLER['subsections'] = array( + 'config-variable-categories', 'config-variables' +); + +/* + * Handlers for the subsections that will return an array of expected tags. + * This is optional, if you don't want to define expected tags, don't create a function. + */ + +/** + * Configuration categories + */ +$HANDLER['grep_config-variable-categories'] = function($module) { + if (!$module->activate()) + return array(); + $want = BaseConfigUtil::getCategories($module); + foreach ($want as &$entry) { + $entry = true; + } + return $want; +}; + +/** + * Configuration variables + */ +$HANDLER['grep_config-variables'] = function($module) { + if (!$module->activate()) + return array(); + $want = BaseConfigUtil::getVariables($module); + foreach ($want as &$entry) { + $entry = true; + } + return $want; +}; |