Merge pull request #866 from quantum-dragons/bugfix/editableoption-canmethods-fix

BUGFIX: re-added can* methods for EditableOption field
This commit is contained in:
Robbie Averill 2019-03-13 11:15:55 +13:00 committed by GitHub
commit 830e3a1100
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 67 additions and 2 deletions

View File

@ -4,6 +4,7 @@ namespace SilverStripe\UserForms\Model\EditableFormField;
use SilverStripe\Core\Convert;
use SilverStripe\ORM\DataObject;
use SilverStripe\Security\Member;
use SilverStripe\Versioned\Versioned;
/**
@ -30,12 +31,12 @@ class EditableOption extends DataObject
];
private static $extensions = [
Versioned::class . "('Stage', 'Live')"
Versioned::class . "('Stage', 'Live')",
];
private static $summary_fields = [
'Title',
'Default'
'Default',
];
protected static $allow_empty_values = false;
@ -94,4 +95,68 @@ class EditableOption extends DataObject
parent::onBeforeWrite();
}
/**
* @param Member $member
*
* @return boolean
*/
public function canEdit($member = null)
{
return $this->Parent()->canEdit($member);
}
/**
* @param Member $member
*
* @return boolean
*/
public function canDelete($member = null)
{
return $this->canEdit($member);
}
/**
* @param Member $member
* @return bool
*/
public function canView($member = null)
{
return $this->Parent()->canView($member);
}
/**
* Return whether a user can create an object of this type
*
* @param Member $member
* @param array $context Virtual parameter to allow context to be passed in to check
* @return bool
*/
public function canCreate($member = null, $context = [])
{
// Check parent object
$parent = $this->Parent();
if ($parent) {
return $parent->canCreate($member);
}
// Fall back to secure admin permissions
return parent::canCreate($member);
}
/**
* @param Member $member
* @return bool
*/
public function canPublish($member = null)
{
return $this->canEdit($member);
}
/**
* @param Member $member
* @return bool
*/
public function canUnpublish($member = null)
{
return $this->canDelete($member);
}
}