aboutsummaryrefslogtreecommitdiff
path: root/engine/lib
diff options
context:
space:
mode:
Diffstat (limited to 'engine/lib')
-rw-r--r--engine/lib/entities.php7
-rw-r--r--engine/lib/users.php10
2 files changed, 16 insertions, 1 deletions
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);