summaryrefslogtreecommitdiff
path: root/modules/contact
diff options
context:
space:
mode:
authorAngie Byron <webchick@24967.no-reply.drupal.org>2010-02-17 04:39:49 +0000
committerAngie Byron <webchick@24967.no-reply.drupal.org>2010-02-17 04:39:49 +0000
commit08563b46dab769ff158827f1db8356b8d0c0471b (patch)
tree53c5b10a8657c32a8929c0028948b76569952284 /modules/contact
parent2d4b5d085fa3d033553f0ddb149886aa2af4d907 (diff)
downloadbrdo-08563b46dab769ff158827f1db8356b8d0c0471b.tar.gz
brdo-08563b46dab769ff158827f1db8356b8d0c0471b.tar.bz2
#586664 by bleen18: Fixed Users should not be able to contact blocked users (with tests).
Diffstat (limited to 'modules/contact')
-rw-r--r--modules/contact/contact.module5
-rw-r--r--modules/contact/contact.test13
2 files changed, 18 insertions, 0 deletions
diff --git a/modules/contact/contact.module b/modules/contact/contact.module
index ff3cf164e..d3ef4ce7d 100644
--- a/modules/contact/contact.module
+++ b/modules/contact/contact.module
@@ -142,6 +142,11 @@ function _contact_personal_tab_access(stdClass $account) {
return FALSE;
}
+ // If requested user has been blocked, do not allow users to contact them.
+ if (empty($account->status)) {
+ return FALSE;
+ }
+
return user_access('access user contact forms');
}
diff --git a/modules/contact/contact.test b/modules/contact/contact.test
index b54dbe3d0..cc89d8632 100644
--- a/modules/contact/contact.test
+++ b/modules/contact/contact.test
@@ -352,6 +352,19 @@ class ContactPersonalTestCase extends DrupalWebTestCase {
$this->drupalLogin($this->admin_user);
$this->drupalGet('user/' . $this->contact_user->uid . '/contact');
$this->assertResponse(200);
+
+ // Re-create our contacted user as a blocked user.
+ $this->contact_user = $this->drupalCreateUser();
+ user_save($this->contact_user, array('status' => 0));
+
+ // Test that blocked users can still be contacted by admin.
+ $this->drupalGet('user/' . $this->contact_user->uid . '/contact');
+ $this->assertResponse(200);
+
+ // Test that blocked users cannot be contacted by non-admins.
+ $this->drupalLogin($this->web_user);
+ $this->drupalGet('user/' . $this->contact_user->uid . '/contact');
+ $this->assertResponse(403);
}
/**