aboutsummaryrefslogtreecommitdiff
path: root/actions/admin/site
diff options
context:
space:
mode:
Diffstat (limited to 'actions/admin/site')
-rw-r--r--actions/admin/site/flush_cache.php10
-rw-r--r--actions/admin/site/regenerate_secret.php11
-rw-r--r--actions/admin/site/unlock_upgrade.php10
-rw-r--r--actions/admin/site/update_advanced.php58
-rw-r--r--actions/admin/site/update_basic.php26
5 files changed, 76 insertions, 39 deletions
diff --git a/actions/admin/site/flush_cache.php b/actions/admin/site/flush_cache.php
new file mode 100644
index 000000000..ebb8296c7
--- /dev/null
+++ b/actions/admin/site/flush_cache.php
@@ -0,0 +1,10 @@
+<?php
+/**
+ * Flush all the caches
+ */
+
+elgg_invalidate_simplecache();
+elgg_reset_system_cache();
+
+system_message(elgg_echo('admin:cache:flushed'));
+forward(REFERER); \ No newline at end of file
diff --git a/actions/admin/site/regenerate_secret.php b/actions/admin/site/regenerate_secret.php
new file mode 100644
index 000000000..3112fb5f3
--- /dev/null
+++ b/actions/admin/site/regenerate_secret.php
@@ -0,0 +1,11 @@
+<?php
+/**
+ * Generate a new site secret
+ */
+
+init_site_secret();
+elgg_reset_system_cache();
+
+system_message(elgg_echo('admin:site:secret_regenerated'));
+
+forward(REFERER);
diff --git a/actions/admin/site/unlock_upgrade.php b/actions/admin/site/unlock_upgrade.php
new file mode 100644
index 000000000..b625b1d26
--- /dev/null
+++ b/actions/admin/site/unlock_upgrade.php
@@ -0,0 +1,10 @@
+<?php
+/**
+ * Unlocks the upgrade script
+ */
+
+if (_elgg_upgrade_is_locked()) {
+ _elgg_upgrade_unlock();
+}
+system_message(elgg_echo('upgrade:unlock:success'));
+forward(REFERER);
diff --git a/actions/admin/site/update_advanced.php b/actions/admin/site/update_advanced.php
index e65919ce1..4888b0a8d 100644
--- a/actions/admin/site/update_advanced.php
+++ b/actions/admin/site/update_advanced.php
@@ -1,39 +1,51 @@
<?php
/**
- * Elgg update site action
+ * Updates the advanced settings for the primary site object.
*
- * This is an update version of the sitesettings/install action
- * which is used by the admin panel to modify basic settings.
+ * Options are saved among metadata on the site object, entries
+ * in the datalist table, and entries in the config table.
*
- * @package Elgg
- * @subpackage Core
- * @author Curverider Ltd
- * @link http://elgg.org/
+ * @package Elgg.Core
+ * @subpackage Administration.Site
*/
-admin_gatekeeper();
-
-if (datalist_get('default_site')) {
- $site = get_entity(datalist_get('default_site'));
+if ($site = elgg_get_site_entity()) {
if (!($site instanceof ElggSite)) {
throw new InstallationException(elgg_echo('InvalidParameterException:NonElggSite'));
}
- $site->url = get_input('wwwroot');
+ $site->url = rtrim(get_input('wwwroot', '', false), '/') . '/';
+
+ datalist_set('path', sanitise_filepath(get_input('path', '', false)));
+ $dataroot = sanitise_filepath(get_input('dataroot', '', false));
+
+ // check for relative paths
+ if (stripos(PHP_OS, 'win') === 0) {
+ if (strpos($dataroot, ':') !== 1) {
+ $msg = elgg_echo('admin:configuration:dataroot:relative_path', array($dataroot));
+ register_error($msg);
+ forward(REFERER);
+ }
+ } else {
+ if (strpos($dataroot, '/') !== 0) {
+ $msg = elgg_echo('admin:configuration:dataroot:relative_path', array($dataroot));
+ register_error($msg);
+ forward(REFERER);
+ }
+ }
- datalist_set('path', sanitise_filepath(get_input('path')));
- datalist_set('dataroot', sanitise_filepath(get_input('dataroot')));
+ datalist_set('dataroot', $dataroot);
if (get_input('simplecache_enabled')) {
- elgg_view_enable_simplecache();
+ elgg_enable_simplecache();
} else {
- elgg_view_disable_simplecache();
+ elgg_disable_simplecache();
}
- if (get_input('viewpath_cache_enabled')) {
- elgg_enable_filepath_cache();
+ if (get_input('system_cache_enabled')) {
+ elgg_enable_system_cache();
} else {
- elgg_disable_filepath_cache();
+ elgg_disable_system_cache();
}
set_config('default_access', get_input('default_access', ACCESS_PRIVATE), $site->getGUID());
@@ -41,22 +53,20 @@ if (datalist_get('default_site')) {
$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());
}
-
+
// setup walled garden
if (get_input('walled_garden', FALSE)) {
set_config('walled_garden', TRUE, $site->getGUID());
@@ -84,5 +94,5 @@ if (datalist_get('default_site')) {
register_error(elgg_echo("admin:configuration:fail"));
}
- forward($_SERVER['HTTP_REFERER']);
+ forward(REFERER);
} \ No newline at end of file
diff --git a/actions/admin/site/update_basic.php b/actions/admin/site/update_basic.php
index 5914ab0b5..9765182cc 100644
--- a/actions/admin/site/update_basic.php
+++ b/actions/admin/site/update_basic.php
@@ -1,31 +1,27 @@
<?php
/**
- * Elgg update site action
+ * Updates the basic settings for the primary site object.
*
- * This is an update version of the sitesettings/install action
- * which is used by the admin panel to modify basic settings.
+ * Basic site settings are saved as metadata on the site object,
+ * with the exception of the default language, which is saved in
+ * the config table.
*
- * @package Elgg
- * @subpackage Core
- * @author Curverider Ltd
- * @link http://elgg.org/
+ * @package Elgg.Core
+ * @subpackage Administration.Site
*/
-admin_gatekeeper();
-
-if (datalist_get('default_site')) {
- $site = get_entity(datalist_get('default_site'));
+if ($site = elgg_get_site_entity()) {
if (!($site instanceof ElggSite)) {
throw new InstallationException(elgg_echo('InvalidParameterException:NonElggSite'));
}
$site->description = get_input('sitedescription');
- $site->name = get_input('sitename');
+ $site->name = strip_tags(get_input('sitename'));
$site->email = get_input('siteemail');
$site->save();
set_config('language', get_input('language'), $site->getGUID());
+}
- forward($_SERVER['HTTP_REFERER']);
- exit;
-} \ No newline at end of file
+system_message(elgg_echo('admin:configuration:success'));
+forward(REFERER); \ No newline at end of file