aboutsummaryrefslogtreecommitdiff
path: root/engine
diff options
context:
space:
mode:
Diffstat (limited to 'engine')
-rw-r--r--engine/lib/admin.php32
-rw-r--r--engine/lib/users.php16
2 files changed, 32 insertions, 16 deletions
diff --git a/engine/lib/admin.php b/engine/lib/admin.php
index 71bf8fe12..876af307b 100644
--- a/engine/lib/admin.php
+++ b/engine/lib/admin.php
@@ -278,6 +278,9 @@ function admin_init() {
);
}
+ // automatic adding of widgets for admin
+ elgg_register_event_handler('make_admin', 'user', 'elgg_add_admin_widgets');
+
elgg_register_page_handler('admin', 'admin_settings_page_handler');
elgg_register_page_handler('admin_plugin_screenshot', 'admin_plugin_screenshot_page_handler');
}
@@ -459,5 +462,34 @@ function admin_plugin_screenshot_page_handler($pages) {
return true;
}
+/**
+ * Adds default admin widgets to the admin dashboard.
+ */
+function elgg_add_admin_widgets($event, $type, $user) {
+ elgg_set_ignore_access(true);
+
+ // check if the user already has widgets
+ if (elgg_get_widgets($user->getGUID(), 'admin')) {
+ return true;
+ }
+
+ // In the form column => array of handlers in order, top to bottom
+ $adminWidgets = array(
+ 1 => array('online_users', 'new_users', 'content_stats'),
+ 2 => array('admin_welcome'),
+ );
+
+ foreach ($adminWidgets as $column => $handlers) {
+ foreach ($handlers as $position => $handler) {
+ $guid = elgg_create_widget($user->getGUID(), $handler, 'admin');
+ if ($guid) {
+ $widget = get_entity($guid);
+ $widget->move($column, $position);
+ }
+ }
+ }
+ elgg_set_ignore_access(false);
+}
+
elgg_register_event_handler('init', 'system', 'admin_init');
elgg_register_event_handler('pagesetup', 'system', 'admin_pagesetup', 1000);
diff --git a/engine/lib/users.php b/engine/lib/users.php
index 55bacdcb2..6733c9d3e 100644
--- a/engine/lib/users.php
+++ b/engine/lib/users.php
@@ -1001,22 +1001,6 @@ $allow_multiple_emails = false, $friend_guid = 0, $invitecode = '') {
}
}
- // Check to see if we've registered the first admin yet.
- // If not, this is the first admin user!
- $have_admin = datalist_get('admin_registered');
-
- if (!$have_admin) {
- // makeAdmin() calls ElggUser::canEdit().
- // right now no one is logged in and so canEdit() returns false.
- // instead of making an override for this one instance that is called on every
- // canEdit() call, just override the access system to set the first admin user.
- // @todo remove this when Cash merges in the new installer
- $ia = elgg_set_ignore_access(TRUE);
- $user->makeAdmin();
- datalist_set('admin_registered', 1);
- elgg_set_ignore_access($ia);
- }
-
// Turn on email notifications by default
set_user_notification_setting($user->getGUID(), 'email', true);