From efae9a293eaca5981b5d35bf1e26084865b4bee3 Mon Sep 17 00:00:00 2001 From: Will Rossiter Date: Mon, 16 Oct 2017 10:13:14 +1300 Subject: [PATCH] Fallback to parent permissions --- code/Model/Submission/SubmittedForm.php | 28 ++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/code/Model/Submission/SubmittedForm.php b/code/Model/Submission/SubmittedForm.php index 26397fb..922d94c 100755 --- a/code/Model/Submission/SubmittedForm.php +++ b/code/Model/Submission/SubmittedForm.php @@ -142,10 +142,16 @@ class SubmittedForm extends DataObject public function canView($member = null) { $extended = $this->extendedCan(__FUNCTION__, $member); + if ($extended !== null) { return $extended; } - return $this->Parent()->canView(); + + if ($this->Parent()) { + return $this->Parent()->canView($member); + } + + return parent::canView($member); } /** @@ -156,10 +162,16 @@ class SubmittedForm extends DataObject public function canEdit($member = null) { $extended = $this->extendedCan(__FUNCTION__, $member); + if ($extended !== null) { return $extended; } - return $this->Parent()->canEdit(); + + if ($this->Parent()) { + return $this->Parent()->canEdit($member); + } + + return parent::canEdit($member); } /** @@ -170,15 +182,21 @@ class SubmittedForm extends DataObject public function canDelete($member = null) { $extended = $this->extendedCan(__FUNCTION__, $member); + if ($extended !== null) { return $extended; } - return $this->Parent()->canDelete(); + + if ($this->Parent()) { + return $this->Parent()->canDelete($member); + } + + return parent::canDelete($member); } /** - * Before we delete this form make sure we delete all the - * field values so that we don't leave old data round + * Before we delete this form make sure we delete all the field values so + * that we don't leave old data round. * * @return void */