From 1b2a453410488addb98d8c7f769bfd29720093df Mon Sep 17 00:00:00 2001 From: cash Date: Tue, 8 Dec 2009 12:46:53 +0000 Subject: fixes #1305 - user and entity cache now cleared on delete git-svn-id: http://code.elgg.org/elgg/trunk@3743 36083f99-b078-4883-b0ff-0f9b5a30f544 --- engine/lib/entities.php | 7 ++++++- engine/lib/users.php | 10 ++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) (limited to 'engine/lib') diff --git a/engine/lib/entities.php b/engine/lib/entities.php index ef99f764a..f86299c6e 100644 --- a/engine/lib/entities.php +++ b/engine/lib/entities.php @@ -2399,13 +2399,18 @@ function enable_entity($guid) { * Note: this bypasses ownership of sub items. */ function delete_entity($guid, $recursive = true) { - global $CONFIG; + global $CONFIG, $ENTITY_CACHE; $guid = (int)$guid; if ($entity = get_entity($guid)) { if (trigger_elgg_event('delete', $entity->type, $entity)) { if ($entity->canEdit()) { + // delete cache + if (isset($ENTITY_CACHE[$guid])) { + invalidate_cache_for_entity($guid); + } + // Delete contained owned and otherwise releated objects (depth first) if ($recursive) { // Temporary token overriding access controls TODO: Do this better. diff --git a/engine/lib/users.php b/engine/lib/users.php index 5892035a6..0857c520a 100644 --- a/engine/lib/users.php +++ b/engine/lib/users.php @@ -153,6 +153,16 @@ class ElggUser extends ElggEntity * @return bool */ public function delete() { + global $USERNAME_TO_GUID_MAP_CACHE, $CODE_TO_GUID_MAP_CACHE; + + // clear cache + if (isset($USERNAME_TO_GUID_MAP_CACHE[$this->username])) { + unset($USERNAME_TO_GUID_MAP_CACHE[$this->username]); + } + if (isset($CODE_TO_GUID_MAP_CACHE[$this->code])) { + unset($CODE_TO_GUID_MAP_CACHE[$this->code]); + } + // Delete owned data clear_annotations_by_owner($this->guid); clear_metadata_by_owner($this->guid); -- cgit v1.2.3