mirror of
https://github.com/silverstripe/silverstripe-blog
synced 2024-10-22 11:05:58 +02:00
Merge pull request #165 from tractorcow/pulls/2.0/fix-tag-permissions
BUG Fix editors not being able to create categories / tags
This commit is contained in:
commit
b84e6e7cf6
@ -82,6 +82,9 @@ class Blog extends Page implements PermissionProvider {
|
||||
$self =& $this;
|
||||
$this->beforeUpdateCMSFields(function($fields) use ($self) {
|
||||
|
||||
// Don't show this tab if edit is not allowed
|
||||
if(!$self->canEdit()) return;
|
||||
|
||||
// Create categories and tag config
|
||||
$config = GridFieldConfig_RecordEditor::create();
|
||||
$config->removeComponentsByType("GridFieldAddNewButton");
|
||||
|
@ -84,7 +84,10 @@ class BlogCategory extends DataObject {
|
||||
if($extended !== null) {
|
||||
return $extended;
|
||||
}
|
||||
return $this->Blog()->canEdit($member);
|
||||
|
||||
// Since there is no parent yet, need to make a best guess
|
||||
$permission = Blog::config()->grant_user_permission;
|
||||
return Permission::checkMember($member, $permission);
|
||||
}
|
||||
|
||||
|
||||
|
@ -76,7 +76,10 @@ class BlogTag extends DataObject {
|
||||
if($extended !== null) {
|
||||
return $extended;
|
||||
}
|
||||
return $this->Blog()->canEdit($member);
|
||||
|
||||
// Since there is no parent yet, need to make a best guess
|
||||
$permission = Blog::config()->grant_user_permission;
|
||||
return Permission::checkMember($member, $permission);
|
||||
}
|
||||
|
||||
|
||||
|
@ -77,17 +77,9 @@ class BlogCategoryTest extends FunctionalTest {
|
||||
$editor = $this->objFromFixture('Member', 'editor');
|
||||
|
||||
// The first blog can bew viewed by anybody
|
||||
$category = $this->objFromFixture("BlogCategory", "firstcategory");
|
||||
$category = singleton('BlogCategory');
|
||||
$this->assertTrue($category->canCreate($admin), "Admin should be able to create category.");
|
||||
$this->assertTrue($category->canCreate($editor), "Editor should be able to create category.");
|
||||
|
||||
$category = $this->objFromFixture("BlogCategory", "secondcategory");
|
||||
$this->assertTrue($category->canCreate($admin), "Admin should be able to create category.");
|
||||
$this->assertFalse($category->canCreate($editor), "Editor should not be able to create category.");
|
||||
|
||||
$category = $this->objFromFixture("BlogCategory", "thirdcategory");
|
||||
$this->assertTrue($category->canCreate($admin), "Admin should always be able to create category.");
|
||||
$this->assertTrue($category->canCreate($editor), "Editor should be able to create category.");
|
||||
}
|
||||
|
||||
|
||||
|
@ -77,17 +77,9 @@ class BlogTagTest extends FunctionalTest {
|
||||
$editor = $this->objFromFixture('Member', 'editor');
|
||||
|
||||
// The first blog can bew viewed by anybody
|
||||
$tag = $this->objFromFixture("BlogTag", "firsttag");
|
||||
$tag = singleton("BlogTag");
|
||||
$this->assertTrue($tag->canCreate($admin), "Admin should be able to create tag.");
|
||||
$this->assertTrue($tag->canCreate($editor), "Editor should be able to create tag.");
|
||||
|
||||
$tag = $this->objFromFixture("BlogTag", "secondtag");
|
||||
$this->assertTrue($tag->canCreate($admin), "Admin should be able to create tag.");
|
||||
$this->assertFalse($tag->canCreate($editor), "Editor should not be able to create tag.");
|
||||
|
||||
$tag = $this->objFromFixture("BlogTag", "thirdtag");
|
||||
$this->assertTrue($tag->canCreate($admin), "Admin should always be able to create tags.");
|
||||
$this->assertTrue($tag->canCreate($editor), "Editor should be able to create tag.");
|
||||
}
|
||||
|
||||
|
||||
|
@ -111,7 +111,6 @@ class BlogTest extends SapphireTest {
|
||||
|
||||
// Check that editors have all permissions on their own blog
|
||||
$this->assertTrue($blog->canEdit($editor));
|
||||
Debug::dump($blog2->Editors()->count());
|
||||
$this->assertFalse($blog2->canEdit($editor));
|
||||
$this->assertTrue($blog->canAddChildren($editor));
|
||||
$this->assertFalse($blog2->canAddChildren($editor));
|
||||
|
Loading…
Reference in New Issue
Block a user