Source

lorea_production / elgg / actions / admin / user / spammer.php

Full commit
<?php
/**
 * Elgg mark a user as spammer user
 *
 * @package Elgg
 * @subpackage Core
 */


// block non-admin users - require since this action is not registered
admin_gatekeeper();

// Get the user
$guid = get_input('guid');
$obj = get_entity($guid);

$name = $obj->name;
$username = $obj->username;

if (($obj instanceof ElggUser) && ($obj->canEdit())) {
	
	$options = array ('owner_guids' => $guid,
			  'limit' => 1000);
	$entities = elgg_get_entities($options);
	$count = count($entities);
	
	if($entities){	
		for( $i = 0; $i <= $count; $i++){
			if($entities[$i]->delete()){
				error_log("ENTITY DELETED " . $entities[$i]->guid);
			}else{
				error_log("FAIL DELETING ENTITY " . $entities[$i]->guid);
			}
		}
	}else{
		error_log("DONT HAVE ENTITIES");
	}	

	$annotations = get_annotations("", "", "", "", "", $guid, 1000);
	$count = count($annotations);
	
	if($annotations){
		for( $i = 0; $i <= $count; $i++){
			if(delete_annotation($annotations[$i]->id)){
				error_log("ANNOTATION DELETED " . $annotations[$i]->id);
			}else{
				error_log("FAIL DELETING ANNOTATION " . $annotations[$i]->id);
			}
		}	
	}else{
		error_log("DONT HAVE ANNOTAIONS");
	}
	
	if($obj->ban()) {
		system_message(sprintf(elgg_echo('admin:user:spammer:yes'), $name));
	} else {
		register_error(elgg_echo('admin:user:spammer:no'));
	}
} else {
	register_error(elgg_echo('admin:user:spammer: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 = "pg/admin/user/";
}

forward($forward);