diff options
Diffstat (limited to 'engine/classes')
| -rw-r--r-- | engine/classes/ElggEntity.php | 12 | ||||
| -rw-r--r-- | engine/classes/ElggGroup.php | 7 | ||||
| -rw-r--r-- | engine/classes/ElggObject.php | 8 | ||||
| -rw-r--r-- | engine/classes/ElggUser.php | 6 | 
4 files changed, 27 insertions, 6 deletions
| diff --git a/engine/classes/ElggEntity.php b/engine/classes/ElggEntity.php index 8b3ceb551..dd1c7c114 100644 --- a/engine/classes/ElggEntity.php +++ b/engine/classes/ElggEntity.php @@ -1270,15 +1270,23 @@ abstract class ElggEntity extends ElggData implements  	public function save() {  		$guid = $this->getGUID();  		if ($guid > 0) { -			_elgg_cache_entity($this); -			return update_entity( +			// See #5600. This ensures the lower level can_edit_entity() check will use a +			// fresh entity from the DB so it sees the persisted owner_guid +			_elgg_disable_caching_for_entity($guid); + +			$ret = update_entity(  				$guid,  				$this->get('owner_guid'),  				$this->get('access_id'),  				$this->get('container_guid'),  				$this->get('time_created')  			); + +			_elgg_enable_caching_for_entity($guid); +			_elgg_cache_entity($this); + +			return $ret;  		} else {  			// Create a new entity (nb: using attribute array directly  			// 'cos set function does something special!) diff --git a/engine/classes/ElggGroup.php b/engine/classes/ElggGroup.php index 61f9163d5..7e69b7a84 100644 --- a/engine/classes/ElggGroup.php +++ b/engine/classes/ElggGroup.php @@ -352,7 +352,12 @@ class ElggGroup extends ElggEntity  		}  		// Now save specific stuff -		return create_group_entity($this->get('guid'), $this->get('name'), $this->get('description')); + +		_elgg_disable_caching_for_entity($this->guid); +		$ret = create_group_entity($this->get('guid'), $this->get('name'), $this->get('description')); +		_elgg_enable_caching_for_entity($this->guid); + +		return $ret;  	}  	// EXPORTABLE INTERFACE //////////////////////////////////////////////////////////// diff --git a/engine/classes/ElggObject.php b/engine/classes/ElggObject.php index d54752dca..aeaa3ba5c 100644 --- a/engine/classes/ElggObject.php +++ b/engine/classes/ElggObject.php @@ -126,8 +126,12 @@ class ElggObject extends ElggEntity {  		}  		// Save ElggObject-specific attributes -		return create_object_entity($this->get('guid'), $this->get('title'), -			$this->get('description')); + +		_elgg_disable_caching_for_entity($this->guid); +		$ret = create_object_entity($this->get('guid'), $this->get('title'), $this->get('description')); +		_elgg_enable_caching_for_entity($this->guid); + +		return $ret;  	}  	/** diff --git a/engine/classes/ElggUser.php b/engine/classes/ElggUser.php index b2cada8ef..6163f9b62 100644 --- a/engine/classes/ElggUser.php +++ b/engine/classes/ElggUser.php @@ -132,9 +132,13 @@ class ElggUser extends ElggEntity  		}  		// Now save specific stuff -		return create_user_entity($this->get('guid'), $this->get('name'), $this->get('username'), +		_elgg_disable_caching_for_entity($this->guid); +		$ret = create_user_entity($this->get('guid'), $this->get('name'), $this->get('username'),  			$this->get('password'), $this->get('salt'), $this->get('email'), $this->get('language'),  			$this->get('code')); +		_elgg_enable_caching_for_entity($this->guid); + +		return $ret;  	}  	/** | 
