diff options
author | Kate Butler <kate@innocraft.com> | 2019-10-07 04:03:02 +0300 |
---|---|---|
committer | Thomas Steur <tsteur@users.noreply.github.com> | 2019-10-07 04:03:02 +0300 |
commit | 1bf1b1f84e5f913775d35cc6c4f21f5cad6237d0 (patch) | |
tree | db24900b1ed57758e6de42aad7945cf5b42db209 /plugins/ScheduledReports | |
parent | 2a54592f8cc55eb703d1972f6e0666bb44b62bb4 (diff) |
Skip unnecessary validation on report unsubscribe (#14942)
* Skip unnecessary validation on report unsubscribe
* Simplify logic for saving report parameters during unsubscribe
* Reset ScheduledReports cache after unsubscribing user
* Fix namespace error
Diffstat (limited to 'plugins/ScheduledReports')
-rw-r--r-- | plugins/ScheduledReports/SubscriptionModel.php | 21 |
1 files changed, 7 insertions, 14 deletions
diff --git a/plugins/ScheduledReports/SubscriptionModel.php b/plugins/ScheduledReports/SubscriptionModel.php index b548b80c89..fcdfa0c101 100644 --- a/plugins/ScheduledReports/SubscriptionModel.php +++ b/plugins/ScheduledReports/SubscriptionModel.php @@ -14,6 +14,7 @@ use Piwik\Common; use Piwik\Db; use Piwik\DbHelper; use Piwik\Piwik; +use Piwik\Plugins\ScheduledReports\API as APIScheduledReports; class SubscriptionModel { @@ -80,20 +81,12 @@ class SubscriptionModel } if ($emailFound) { - Access::doAsSuperUser(function() use ($report) { - Request::processRequest('ScheduledReports.updateReport', [ - 'idReport' => $report['idreport'], - 'idSite' => $report['idsite'], - 'description' => $report['description'], - 'period' => $report['period'], - 'hour' => $report['hour'], - 'reportType' => $report['type'], - 'reportFormat' => $report['format'], - 'reports' => $report['reports'], - 'parameters' => $report['parameters'], - 'idSegment' => $report['idsegment'], - ]); - }); + $reportModel = new Model(); + $reportModel->updateReport($report['idreport'], array( + 'parameters' => json_encode($report['parameters']) + )); + // Reset the cache manually since we didn't call the API method which would do it for us + APIScheduledReports::$cache = array(); Piwik::postEvent('Report.unsubscribe', [$report['idreport'], $email]); |