diff options
| author | Silvio Rhatto <rhatto@riseup.net> | 2014-03-14 21:25:01 -0300 | 
|---|---|---|
| committer | Silvio Rhatto <rhatto@riseup.net> | 2014-03-14 21:25:01 -0300 | 
| commit | 3651c99a195685f3a868e159e72c4daf8cb371d3 (patch) | |
| tree | cb004dd7b6ca55215a2c20112fe0c5209d98c18e /mod/messages | |
| parent | 97e689213ff4e829f251af526ed4e796a3cc2b71 (diff) | |
| parent | c2707bb867ddb285af85d7a0e75db26ef692d68c (diff) | |
| download | elgg-3651c99a195685f3a868e159e72c4daf8cb371d3.tar.gz elgg-3651c99a195685f3a868e159e72c4daf8cb371d3.tar.bz2 | |
Merge branch 'master' into saravea
Conflicts:
	mod/blog/views/default/blog/sidebar/archives.php
Diffstat (limited to 'mod/messages')
| -rw-r--r-- | mod/messages/start.php | 36 | 
1 files changed, 36 insertions, 0 deletions
| diff --git a/mod/messages/start.php b/mod/messages/start.php index 2bf0526da..5c2cb8d0d 100644 --- a/mod/messages/start.php +++ b/mod/messages/start.php @@ -51,6 +51,9 @@ function messages_init() {  	elgg_register_plugin_hook_handler('notify:entity:message', 'object', 'messages_notification_msg');  	register_notification_object('object', 'messages', elgg_echo('messages:new')); +	// delete messages sent by a user when user is deleted +	elgg_register_event_handler('delete', 'user', 'messages_purge'); +  	// ecml  	elgg_register_plugin_hook_handler('get_views', 'ecml', 'messages_ecml_views_hook'); @@ -428,6 +431,39 @@ function messages_user_hover_menu($hook, $type, $return, $params) {  	return $return;  } +/** + * Delete messages from a user who is being deleted + * + * @param string   $event Event name + * @param string   $type  Event type + * @param ElggUser $user  User being deleted + */ +function messages_purge($event, $type, $user) { + +	if (!$user->getGUID()) { +		return; +	} + +	// make sure we delete them all +	$entity_disable_override = access_get_show_hidden_status(); +	access_show_hidden_entities(true); +	$ia = elgg_set_ignore_access(true); + +	$options = array( +		'type' => 'object', +		'subtype' => 'messages', +		'metadata_name' => 'fromId', +		'metadata_value' => $user->getGUID(), +		'limit' => 0, +	); +	$batch = new ElggBatch('elgg_get_entities_from_metadata', $options); +	foreach ($batch as $e) { +		$e->delete(); +	} + +	elgg_set_ignore_access($ia); +	access_show_hidden_entities($entity_disable_override); +}  /**   * Register messages with ECML. | 
