mirror of
https://github.com/silverstripe/silverstripe-comments
synced 2024-10-22 11:05:49 +02:00
FIX: #73 If moderation enabled, ensure spam responses aren't included.
This commit is contained in:
parent
877537c284
commit
5a8de05ea7
@ -60,9 +60,12 @@ class CommentsExtension extends DataExtension {
|
|||||||
|
|
||||||
// Filter unmoderated comments for non-administrators if moderation is enabled
|
// Filter unmoderated comments for non-administrators if moderation is enabled
|
||||||
if (Commenting::get_config_value($this->ownerBaseClass, 'require_moderation') || Commenting::get_config_value($this->ownerBaseClass, 'require_moderation_nonmembers')) {
|
if (Commenting::get_config_value($this->ownerBaseClass, 'require_moderation') || Commenting::get_config_value($this->ownerBaseClass, 'require_moderation_nonmembers')) {
|
||||||
$list = $list->filter('Moderated', 1);
|
$list = $list->filter(array(
|
||||||
|
'Moderated' => 1,
|
||||||
|
'IsSpam' => 0
|
||||||
|
));
|
||||||
} else {
|
} else {
|
||||||
// Filter spam comments for non-administrators if auto-moderted
|
// Filter spam comments for non-administrators if auto-moderated
|
||||||
$list = $list->filter('IsSpam', 0);
|
$list = $list->filter('IsSpam', 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -18,6 +18,36 @@ class CommentsTest extends FunctionalTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public function testCommentsList() {
|
||||||
|
// comments don't require moderation so unmoderated comments can be
|
||||||
|
// shown but not spam posts
|
||||||
|
Commenting::set_config_value('CommentableItem','require_moderation', false);
|
||||||
|
|
||||||
|
$item = $this->objFromFixture('CommentableItem', 'spammed');
|
||||||
|
|
||||||
|
$this->assertDOSEquals(array(
|
||||||
|
array('Name' => 'Comment 1'),
|
||||||
|
array('Name' => 'Comment 3')
|
||||||
|
), $item->getComments(), 'Only 2 non spam posts should be shown');
|
||||||
|
|
||||||
|
// when moderated, only moderated, non spam posts should be shown.
|
||||||
|
Commenting::set_config_value('CommentableItem','require_moderation', true);
|
||||||
|
|
||||||
|
$this->assertDOSEquals(array(
|
||||||
|
array('Name' => 'Comment 3')
|
||||||
|
), $item->getComments(), 'Only 1 non spam, moderated post should be shown');
|
||||||
|
|
||||||
|
// when logged in as an user with CMS_ACCESS_CommentAdmin rights they
|
||||||
|
// should see all the comments whether we have moderation on or not
|
||||||
|
$this->logInWithPermission('CMS_ACCESS_CommentAdmin');
|
||||||
|
|
||||||
|
Commenting::set_config_value('CommentableItem','require_moderation', true);
|
||||||
|
$this->assertEquals(4, $item->getComments()->Count());
|
||||||
|
|
||||||
|
Commenting::set_config_value('CommentableItem','require_moderation', false);
|
||||||
|
$this->assertEquals(4, $item->getComments()->Count());
|
||||||
|
}
|
||||||
|
|
||||||
public function testCanView() {
|
public function testCanView() {
|
||||||
$visitor = $this->objFromFixture('Member', 'visitor');
|
$visitor = $this->objFromFixture('Member', 'visitor');
|
||||||
$admin = $this->objFromFixture('Member', 'commentadmin');
|
$admin = $this->objFromFixture('Member', 'commentadmin');
|
||||||
@ -222,6 +252,7 @@ class CommentsTest extends FunctionalTest {
|
|||||||
|
|
||||||
Commenting::set_config_value('CommentableItem','html_allowed', $origAllowed);
|
Commenting::set_config_value('CommentableItem','html_allowed', $origAllowed);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -27,6 +27,9 @@ CommentableItem:
|
|||||||
nocomments:
|
nocomments:
|
||||||
Title: No comments
|
Title: No comments
|
||||||
ProvideComments: 0
|
ProvideComments: 0
|
||||||
|
spammed:
|
||||||
|
ProvideComments: 1
|
||||||
|
Title: spammed
|
||||||
|
|
||||||
Comment:
|
Comment:
|
||||||
firstComA:
|
firstComA:
|
||||||
@ -138,3 +141,27 @@ Comment:
|
|||||||
Moderated: 0
|
Moderated: 0
|
||||||
IsSpam: 1
|
IsSpam: 1
|
||||||
BaseClass: CommentableItem
|
BaseClass: CommentableItem
|
||||||
|
testCommentList1:
|
||||||
|
ParentID: =>CommentableItem.spammed
|
||||||
|
Name: Comment 1
|
||||||
|
Moderated: 0
|
||||||
|
IsSpam: 0
|
||||||
|
BaseClass: CommentableItem
|
||||||
|
testCommentList2:
|
||||||
|
ParentID: =>CommentableItem.spammed
|
||||||
|
Name: Comment 2
|
||||||
|
Moderated: 1
|
||||||
|
IsSpam: 1
|
||||||
|
BaseClass: CommentableItem
|
||||||
|
testCommentList3:
|
||||||
|
ParentID: =>CommentableItem.spammed
|
||||||
|
Name: Comment 3
|
||||||
|
Moderated: 1
|
||||||
|
IsSpam: 0
|
||||||
|
BaseClass: CommentableItem
|
||||||
|
testCommentList4:
|
||||||
|
ParentID: =>CommentableItem.spammed
|
||||||
|
Name: Comment 4
|
||||||
|
Moderated: 0
|
||||||
|
IsSpam: 1
|
||||||
|
BaseClass: CommentableItem
|
Loading…
Reference in New Issue
Block a user