aboutsummaryrefslogtreecommitdiff
path: root/actions/admin/site/update_advanced.php
blob: 7e6bd0cc6576c6061e0a54f34331d6dad3a0f66f (plain)
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
<?php
/**
 * Elgg update site action
 *
 * This is an update version of the sitesettings/install action
 * which is used by the admin panel to modify basic settings.
 *
 * @package Elgg
 * @subpackage Core
 * @author Curverider Ltd
 * @link http://elgg.org/
 */

admin_gatekeeper();

if (datalist_get('default_site')) {
	$site = get_entity(datalist_get('default_site'));
	if (!($site instanceof ElggSite)) {
		throw new InstallationException(elgg_echo('InvalidParameterException:NonElggSite'));
	}

	$site->url = get_input('wwwroot');

	datalist_set('path', sanitise_filepath(get_input('path')));
	datalist_set('dataroot', sanitise_filepath(get_input('dataroot')));

	if (get_input('simplecache_enabled')) {
		elgg_view_enable_simplecache();
	} else {
		elgg_view_disable_simplecache();
	}

	if (get_input('viewpath_cache_enabled')) {
		elgg_enable_filepath_cache();
	} else {
		elgg_disable_filepath_cache();
	}

	set_config('default_access', get_input('default_access', ACCESS_PRIVATE), $site->getGUID());

	$user_default_access = (get_input('allow_user_default_access')) ? 1 : 0;
	set_config('allow_user_default_access', $user_default_access, $site->getGUID());

	set_config('view', get_input('view'), $site->getGUID());

	$debug = get_input('debug');
	if ($debug) {
		set_config('debug', $debug, $site->getGUID());
	} else {
		unset_config('debug', $site->getGUID());
	}
	
	// allow new user registration?
	if (get_input('allow_registration', FALSE)) {
		set_config('allow_registration', TRUE, $site->getGUID());
	} else {
		set_config('allow_registration', FALSE, $site->getGUID());
	}

	$https_login = get_input('https_login');
	if ($https_login) {
		set_config('https_login', 1, $site->getGUID());
	} else {
		unset_config('https_login', $site->getGUID());
	}

	$api = get_input('api');
	if ($api) {
		unset_config('disable_api', $site->getGUID());
	} else {
		set_config('disable_api', 'disabled', $site->getGUID());
	}

	if ($site->save()) {
		system_message(elgg_echo("admin:configuration:success"));
	} else {
		register_error(elgg_echo("admin:configuration:fail"));
	}

	forward($_SERVER['HTTP_REFERER']);
}