MDL-74341 reportbuilder: re-factor audience form permission checks.

This commit is contained in:
Paul Holden 2022-03-28 17:29:57 +01:00
parent b5f51883f0
commit c00a97c527
2 changed files with 5 additions and 6 deletions

View File

@ -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.

View File

@ -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');
}