diff options
Diffstat (limited to 'actions/admin/user/delete.php')
| -rw-r--r-- | actions/admin/user/delete.php | 67 |
1 files changed, 36 insertions, 31 deletions
diff --git a/actions/admin/user/delete.php b/actions/admin/user/delete.php index ea5f79079..7cfbd0925 100644 --- a/actions/admin/user/delete.php +++ b/actions/admin/user/delete.php @@ -1,35 +1,40 @@ <?php - /** - * Elgg delete user - * - * @package Elgg - * @subpackage Core - * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 - * @author Curverider Ltd - * @copyright Curverider Ltd 2008 - * @link http://elgg.org/ - */ +/** + * Delete a user. + * + * The user will be deleted recursively, meaning all entities + * owned or contained by the user will also be removed. + * + * @package Elgg.Core + * @subpackage Administration.User + */ - require_once(dirname(dirname(dirname(dirname(__FILE__)))) . "/engine/start.php"); +// Get the user +$guid = get_input('guid'); +$user = get_entity($guid); - // block non-admin users - admin_gatekeeper(); - action_gatekeeper(); - - // Get the user - $guid = get_input('guid'); - $obj = get_entity($guid); - - if ( ($obj instanceof ElggUser) && ($obj->canEdit())) - { - if ($obj->delete()) - system_message(elgg_echo('admin:user:delete:yes')); - else - register_error(elgg_echo('admin:user:delete:no')); - } - else +if ($guid == elgg_get_logged_in_user_guid()) { + register_error(elgg_echo('admin:user:self:delete:no')); + forward(REFERER); +} + +$name = $user->name; +$username = $user->username; + +if (($user instanceof ElggUser) && ($user->canEdit())) { + if ($user->delete()) { + system_message(elgg_echo('admin:user:delete:yes', array($name))); + } else { register_error(elgg_echo('admin:user:delete:no')); - - forward($_SERVER['HTTP_REFERER']); - exit; -?>
\ No newline at end of file + } +} else { + register_error(elgg_echo('admin:user:delete:no')); +} + +// forward to user administration if on a user's page as it no longer exists +$forward = REFERER; +if (strpos($_SERVER['HTTP_REFERER'], $username) != FALSE) { + $forward = "admin/users/newest"; +} + +forward($forward); |
