mirror of
https://github.com/silverstripe/silverstripe-userforms.git
synced 2024-10-22 17:05:42 +02:00
fix(Reorder): Fix bug where 'Content Authors' can no longer re-order form fields due to how GridFieldOrderableRows checks canEdit() permissions.
fix(Reorder): Fix EditableFormField to fallback to current page editing permissions when reordering with GridFieldOrderableRows component. fix(Reorder): Check if record exists before calling 'hasExtension' check.
This commit is contained in:
parent
cf26631418
commit
08d173f24a
@ -365,6 +365,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->ID == 0) {
|
||||||
|
// 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
|
||||||
|
Loading…
Reference in New Issue
Block a user