aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--actions/admin/site/update_basic.php41
-rw-r--r--engine/lib/admin.php4
-rw-r--r--engine/lib/entities.php6
-rw-r--r--engine/lib/sites.php2
-rw-r--r--languages/en.php5
-rw-r--r--views/default/admin/site.php6
6 files changed, 58 insertions, 6 deletions
diff --git a/actions/admin/site/update_basic.php b/actions/admin/site/update_basic.php
new file mode 100644
index 000000000..726fe8eac
--- /dev/null
+++ b/actions/admin/site/update_basic.php
@@ -0,0 +1,41 @@
+<?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
+ * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
+ * @author Marcus Povey
+ * @copyright Curverider Ltd 2008
+ * @link http://elgg.org/
+ */
+
+ global $CONFIG;
+
+ if (get_input('settings') == 'go') {
+
+ if (datalist_get('default_site')) {
+
+ $site = get_entity(datalist_get('default_site'));
+ if (!($site instanceof ElggSite))
+ throw new InstallationException(elgg_echo('InvalidParameterException:NonElggSite'));
+
+ $site->name = get_input('sitename');
+ $site->url = get_input('wwwroot');
+
+ datalist_set('path',get_input('path'));
+ datalist_set('dataroot',get_input('dataroot'));
+
+ system_message(elgg_echo("admin:configuration:success"));
+
+ header("Location: {$CONFIG->wwwroot}admin/site/");
+ exit;
+
+ }
+
+ }
+
+?> \ No newline at end of file
diff --git a/engine/lib/admin.php b/engine/lib/admin.php
index 2434ab62c..e9b3e6684 100644
--- a/engine/lib/admin.php
+++ b/engine/lib/admin.php
@@ -45,6 +45,10 @@
extend_elgg_admin_page('admin/main_opt/site', 'admin/main');
extend_elgg_admin_page('admin/main_opt/user', 'admin/main');
extend_elgg_admin_page('admin/main_opt/plugins', 'admin/main', 999); // Always last
+
+
+ // Register some actions
+ register_action('admin/site/update_basic', false, "", true); // Register basic site admin action
}
/// Register init function
diff --git a/engine/lib/entities.php b/engine/lib/entities.php
index f96a0a6f3..7735b651b 100644
--- a/engine/lib/entities.php
+++ b/engine/lib/entities.php
@@ -881,6 +881,7 @@
$entity = get_entity($guid);
if ($entity->canEdit()) {
+
if (trigger_elgg_event('update',$entity->type,$entity)) {
$ret = update_data("UPDATE {$CONFIG->dbprefix}entities set owner_guid='$owner_guid', access_id='$access_id', time_updated='$time' WHERE guid=$guid");
@@ -1225,7 +1226,7 @@
* @return true|false Whether the specified user can edit the specified entity.
*/
function can_edit_entity($entity_guid, $user_guid = 0) {
-
+ global $CONFIG;
if ($user_guid == 0) {
if (isset($_SESSION['user'])) {
@@ -1238,9 +1239,10 @@
}
if (($entity = get_entity($entity_guid)) && (!is_null($user))) {
+
if ($entity->getOwner() == $user->getGUID()) return true;
if ($entity->type == "user" && $entity->getGUID() == $user->getGUID()) return true;
-
+
return trigger_plugin_hook('permissions_check',$entity->type,array('entity' => $entity, 'user' => $user),false);
} else {
diff --git a/engine/lib/sites.php b/engine/lib/sites.php
index 5f496a58d..4d3de2794 100644
--- a/engine/lib/sites.php
+++ b/engine/lib/sites.php
@@ -142,7 +142,7 @@
// Save generic stuff
if (!parent::save())
return false;
-
+
// Now save specific stuff
return create_site_entity($this->get('guid'), $this->get('name'), $this->get('description'), $this->get('url'));
}
diff --git a/languages/en.php b/languages/en.php
index f3efede30..cd714143a 100644
--- a/languages/en.php
+++ b/languages/en.php
@@ -209,7 +209,10 @@
/**
* Administration
- */
+ */
+
+ 'admin:configuration:success' => "Your settings have been saved.",
+ 'admin:configuration:fail' => "Your settings could not be saved.",
'admin' => "Administration",
'admin:description' => "The admin panel allows you to control all aspects of the system, from user management to how plugins behave. Choose an option below to get started.",
diff --git a/views/default/admin/site.php b/views/default/admin/site.php
index 30fa901fd..f64c9b994 100644
--- a/views/default/admin/site.php
+++ b/views/default/admin/site.php
@@ -9,10 +9,12 @@
* @author Curverider Ltd
* @copyright Curverider Ltd 2008
* @link http://elgg.org/
- **/
+ */
+ global $CONFIG;
+
// Description of what's going on
echo "<p>" . nl2br(elgg_echo("admin:site:description")) . "</p>";
-
+ echo elgg_view("settings/system",array("action" => $CONFIG->wwwroot."action/admin/site/update_basic"));
?> \ No newline at end of file