diff --git a/reportbuilder/classes/form/audience.php b/reportbuilder/classes/form/audience.php index 578254c0eba..497f5eb1a13 100644 --- a/reportbuilder/classes/form/audience.php +++ b/reportbuilder/classes/form/audience.php @@ -106,6 +106,9 @@ class audience extends dynamic_form { protected function check_access_for_dynamic_submission(): void { $audience = $this->get_audience(); + $report = $audience->get_persistent()->get_report(); + permission::require_can_edit_report($report); + // Check whether we are able to add/edit the current audience. $audience->get_persistent()->get('id') === 0 ? $audience->require_user_can_add() @@ -121,10 +124,6 @@ class audience extends dynamic_form { $formdata = $this->get_data(); $audience = $this->get_audience(); - // Check permissions. - $report = manager::get_report_from_id($formdata->reportid); - permission::require_can_edit_report($report->get_report_persistent()); - $configdata = $audience::retrieve_configdata($formdata); if (!$formdata->id) { // New audience. diff --git a/reportbuilder/classes/local/audiences/base.php b/reportbuilder/classes/local/audiences/base.php index 91fc0323865..834e24971a1 100644 --- a/reportbuilder/classes/local/audiences/base.php +++ b/reportbuilder/classes/local/audiences/base.php @@ -254,7 +254,7 @@ abstract class base { * * @throws report_access_exception */ - public function require_user_can_add(): void { + final public function require_user_can_add(): void { if (!$this->user_can_add()) { throw new report_access_exception('errorreportedit'); } @@ -265,7 +265,7 @@ abstract class base { * * @throws report_access_exception */ - public function require_user_can_edit(): void { + final public function require_user_can_edit(): void { if (!$this->user_can_edit()) { throw new report_access_exception('errorreportedit'); }