diff options
Diffstat (limited to 'engine')
-rw-r--r-- | engine/lib/users.php | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/engine/lib/users.php b/engine/lib/users.php index 0482fd034..d95f32475 100644 --- a/engine/lib/users.php +++ b/engine/lib/users.php @@ -1478,6 +1478,34 @@ function user_avatar_hook($hook, $entity_type, $returnvalue, $params){ } /** + * Setup the user admin menu + */ +function elgg_user_admin_menu($hook, $type, $return, $params) { + $user = $params['user']; + + $actions = array(); + if (!$user->isBanned()) { + $actions[] = 'ban'; + } else { + $actions[] = 'unban'; + } + $actions[] = 'delete'; + $actions[] = 'resetpassword'; + if (!$user->isAdmin()) { + $actions[] = 'makeadmin'; + } else { + $actions[] = 'removeadmin'; + } + + foreach ($actions as $action) { + $url = "action/admin/user/$action?guid={$user->guid}"; + $url = elgg_add_action_tokens_to_url($url); + $item = new ElggMenuItem($action, elgg_echo($action), $url); + elgg_register_menu_item('user_admin', $item); + } +} + +/** * This function loads a set of default fields into the profile, then triggers a hook letting other plugins to edit * add and delete fields. * @@ -1656,6 +1684,8 @@ function users_init() { elgg_register_menu_item('page', $params); } + elgg_register_plugin_hook_handler('register', 'menu:user_admin', 'elgg_user_admin_menu'); + elgg_register_action("register", '', 'public'); elgg_register_action("useradd", '', 'public'); elgg_register_action("friends/add"); |