aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbrettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544>2010-02-19 23:43:58 +0000
committerbrettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544>2010-02-19 23:43:58 +0000
commit43d1cc1bbe4b9c41ac8f6305aa9fe7fb48626565 (patch)
treeb6b97d1e4c5e9783da67b9d07b1bfa3dc432975c
parentf104a260d1370e2d1eabf60497d5caedced5a8e5 (diff)
downloadelgg-43d1cc1bbe4b9c41ac8f6305aa9fe7fb48626565.tar.gz
elgg-43d1cc1bbe4b9c41ac8f6305aa9fe7fb48626565.tar.bz2
Fixes #1421: Banning and unbanning users invalidates the memcache entity.
git-svn-id: http://code.elgg.org/elgg/trunk@3955 36083f99-b078-4883-b0ff-0f9b5a30f544
-rw-r--r--engine/lib/users.php89
1 files changed, 55 insertions, 34 deletions
diff --git a/engine/lib/users.php b/engine/lib/users.php
index 1c29858b6..1d08bd133 100644
--- a/engine/lib/users.php
+++ b/engine/lib/users.php
@@ -488,6 +488,16 @@ function ban_user($user_guid, $reason = "") {
$user->code = "";
$user->save();
+ // invalidate memcache for this user
+ static $newentity_cache;
+ if ((!$newentity_cache) && (is_memcache_available())) {
+ $newentity_cache = new ElggMemcache('new_entity_cache');
+ }
+
+ if ($newentity_cache) {
+ $newentity_cache->delete($user_guid);
+ }
+
// Set ban flag
return update_data("UPDATE {$CONFIG->dbprefix}users_entity set banned='yes' where guid=$user_guid");
}
@@ -511,6 +521,17 @@ function unban_user($user_guid) {
if (($user) && ($user->canEdit()) && ($user instanceof ElggUser)) {
if (trigger_elgg_event('unban', 'user', $user)) {
create_metadata($user_guid, 'ban_reason', '','', 0, ACCESS_PUBLIC);
+
+ // invalidate memcache for this user
+ static $newentity_cache;
+ if ((!$newentity_cache) && (is_memcache_available())) {
+ $newentity_cache = new ElggMemcache('new_entity_cache');
+ }
+
+ if ($newentity_cache) {
+ $newentity_cache->delete($user_guid);
+ }
+
return update_data("UPDATE {$CONFIG->dbprefix}users_entity set banned='no' where guid=$user_guid");
}
}
@@ -545,11 +566,11 @@ function get_user_sites($user_guid, $limit = 10, $offset = 0) {
$offset = (int)$offset;
return elgg_get_entities_from_relationship(array(
- 'relationship' => 'member_of_site',
- 'relationship_guid' => $user_guid,
- 'inverse_relationship' => FALSE,
- 'types' => 'site',
- 'limit' => $limit,
+ 'relationship' => 'member_of_site',
+ 'relationship_guid' => $user_guid,
+ 'inverse_relationship' => FALSE,
+ 'types' => 'site',
+ 'limit' => $limit,
'offset' => $offset)
);
}
@@ -623,11 +644,11 @@ function user_is_friend($user_guid, $friend_guid) {
*/
function get_user_friends($user_guid, $subtype = ELGG_ENTITIES_ANY_VALUE, $limit = 10, $offset = 0) {
return elgg_get_entities_from_relationship(array(
- 'relationship' => 'friend',
- 'relationship_guid' => $user_guid,
- 'types' => 'user',
- 'subtypes' => $subtype,
- 'limit' => $limit,
+ 'relationship' => 'friend',
+ 'relationship_guid' => $user_guid,
+ 'types' => 'user',
+ 'subtypes' => $subtype,
+ 'limit' => $limit,
'offset' => $offset
));
}
@@ -643,12 +664,12 @@ function get_user_friends($user_guid, $subtype = ELGG_ENTITIES_ANY_VALUE, $limit
*/
function get_user_friends_of($user_guid, $subtype = ELGG_ENTITIES_ANY_VALUE, $limit = 10, $offset = 0) {
return elgg_get_entities_from_relationship(array(
- 'relationship' => 'friend',
- 'relationship_guid' => $user_guid,
- 'inverse_relationship' => TRUE,
- 'types' => 'user',
- 'subtypes' => $subtype,
- 'limit' => $limit,
+ 'relationship' => 'friend',
+ 'relationship_guid' => $user_guid,
+ 'inverse_relationship' => TRUE,
+ 'types' => 'user',
+ 'subtypes' => $subtype,
+ 'limit' => $limit,
'offset' => $offset
));
}
@@ -669,10 +690,10 @@ function get_user_objects($user_guid, $subtype = ELGG_ENTITIES_ANY_VALUE, $limit
'type' => 'object',
'subtype' => $subtype,
'owner_guid' => $user_guid,
- 'limit' => $limit,
- 'offset' => $offset,
- 'container_guid' => $user_guid,
- 'created_time_lower' => $timelower,
+ 'limit' => $limit,
+ 'offset' => $offset,
+ 'container_guid' => $user_guid,
+ 'created_time_lower' => $timelower,
'created_time_upper' => $timeupper
));
return $ntt;
@@ -689,9 +710,9 @@ function get_user_objects($user_guid, $subtype = ELGG_ENTITIES_ANY_VALUE, $limit
*/
function count_user_objects($user_guid, $subtype = ELGG_ENTITIES_ANY_VALUE, $timelower = 0, $timeupper = 0) {
$total = elgg_get_entities(array(
- 'type' => 'object',
- 'subtype' => $subtype,
- 'owner_guid' => $user_guid,
+ 'type' => 'object',
+ 'subtype' => $subtype,
+ 'owner_guid' => $user_guid,
'count' => TRUE,
'container_guid' => $user_guid,
'created_time_lower' => $timelower,
@@ -742,11 +763,11 @@ function get_user_friends_objects($user_guid, $subtype = ELGG_ENTITIES_ANY_VALUE
$friendguids[] = $friend->getGUID();
}
return elgg_get_entities(array(
- 'type' => 'object',
- 'subtype' => $subtype,
- 'owner_guids' => $friendguids,
- 'limit' => $limit,
- 'offset' => $offset,
+ 'type' => 'object',
+ 'subtype' => $subtype,
+ 'owner_guids' => $friendguids,
+ 'limit' => $limit,
+ 'offset' => $offset,
'container_guids' => $friendguids,
'created_time_lower' => $timelower,
'created_time_upper' => $timeupper
@@ -771,12 +792,12 @@ function count_user_friends_objects($user_guid, $subtype = ELGG_ENTITIES_ANY_VAL
$friendguids[] = $friend->getGUID();
}
return elgg_get_entities(array(
- 'type' => 'object',
- 'subtype' => $subtype,
- 'owner_guids' => $friendguids,
- 'count' => TRUE,
- 'container_guids' => $friendguids,
- 'created_time_lower' => $timelower,
+ 'type' => 'object',
+ 'subtype' => $subtype,
+ 'owner_guids' => $friendguids,
+ 'count' => TRUE,
+ 'container_guids' => $friendguids,
+ 'created_time_lower' => $timelower,
'created_time_upper' => $timeupper
));
}