summaryrefslogtreecommitdiffstats
path: root/modules-available/baseconfig_bwidm/hooks/cron.inc.php
blob: 32c1bd73ca1be23d9f73eefdfa575998555f1cd7 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
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']);
	}
});