Merge pull request #478 from SilbinaryWolf/fix-reorderissue

fix(Reorder): Fix bug where 'Content Authors' can no longer re-order form fields due to how GridFieldOrderableRows checks canEdit() permissions.
This commit is contained in:
Damian Mooyman 2016-07-14 12:30:01 +12:00 committed by GitHub
commit 931753bbca

View File

@ -370,6 +370,22 @@ class EditableFormField extends DataObject {
$parent = $this->Parent(); $parent = $this->Parent();
if($parent && $parent->exists()) { if($parent && $parent->exists()) {
return $parent->canEdit($member) && !$this->isReadonly(); return $parent->canEdit($member) && !$this->isReadonly();
} else if (!$this->exists() && Controller::has_curr()) {
// This is for GridFieldOrderableRows support as it checks edit permissions on
// singleton of the class. Allows editing of User Defined Form pages by
// 'Content Authors' and those with permission to edit the UDF page. (ie. CanEditType/EditorGroups)
// This is to restore User Forms 2.x backwards compatibility.
$controller = Controller::curr();
if ($controller && $controller instanceof CMSPageEditController)
{
$parent = $controller->getRecord($controller->currentPageID());
// Only allow this behaviour on pages using UserFormFieldEditorExtension, such
// as UserDefinedForm page type.
if ($parent && $parent->hasExtension('UserFormFieldEditorExtension'))
{
return $parent->canEdit($member);
}
}
} }
// Fallback to secure admin permissions // Fallback to secure admin permissions