diff options
Diffstat (limited to 'plugins/UsersManager/Tasks.php')
-rw-r--r-- | plugins/UsersManager/Tasks.php | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/plugins/UsersManager/Tasks.php b/plugins/UsersManager/Tasks.php index 41484fe0c9..d8842d9c4d 100644 --- a/plugins/UsersManager/Tasks.php +++ b/plugins/UsersManager/Tasks.php @@ -1,10 +1,12 @@ <?php + /** * Matomo - free/libre analytics platform * * @link https://matomo.org * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later */ + namespace Piwik\Plugins\UsersManager; use Piwik\Access; @@ -32,12 +34,29 @@ class Tasks extends \Piwik\Plugin\Tasks { $this->daily("cleanupExpiredTokens"); $this->daily("setUserDefaultReportPreference"); + $this->daily("cleanUpExpiredInvites"); } - public function cleanupExpiredTokens() { + public function cleanupExpiredTokens() + { $this->usersModel->deleteExpiredTokens(Date::now()->getDatetime()); } + public function cleanUpExpiredInvites() + { + // Expired invites will be removed after 3 days, so there's a chance to resend an invite before it's removed. + + $expiredInvites = $this->usersModel->getExpiredInvites(Date::now()->subDay(3)->getDatetime()); + + foreach ($expiredInvites as $expiredInvite) { + try { + $this->usersModel->deleteUser($expiredInvite['login']); + } catch (\Exception $e) { + // ignore possible errors thrown during delete user event + } + } + } + public function setUserDefaultReportPreference() { // We initialize the default report user preference for each user (if it hasn't been inited before) for performance, @@ -46,7 +65,7 @@ class Tasks extends \Piwik\Plugin\Tasks $usersModel = $this->usersModel; $usersManagerApi = $this->usersManagerApi; Access::getInstance()->doAsSuperUser(function () use ($usersModel, $usersManagerApi) { - $allUsers = $usersModel->getUsers(array()); + $allUsers = $usersModel->getUsers([]); foreach ($allUsers as $user) { $usersManagerApi->initUserPreferenceWithDefault($user['login'], API::PREFERENCE_DEFAULT_REPORT); } |