From 8e518978b3f570930a8f5c3bfcbceb4b2ef61f78 Mon Sep 17 00:00:00 2001 From: cash Date: Wed, 23 Mar 2011 01:55:47 +0000 Subject: Refs #3165 new admin users all get admin widgets git-svn-id: http://code.elgg.org/elgg/trunk@8823 36083f99-b078-4883-b0ff-0f9b5a30f544 --- engine/lib/admin.php | 32 ++++++++++++++++++++++++++++++++ engine/lib/users.php | 16 ---------------- 2 files changed, 32 insertions(+), 16 deletions(-) (limited to 'engine/lib') 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); -- cgit v1.2.3