PluginProbe ʕ •ᴥ•ʔ
Matomo Analytics – Powerful, Privacy-First Insights for WordPress / 4.13.0
Matomo Analytics – Powerful, Privacy-First Insights for WordPress v4.13.0
5.13.0 5.12.1 5.12.0 5.11.1 5.11.0 5.10.2 5.10.1 trunk 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.1.0 1.1.1 1.1.2 1.1.3 1.2.0 1.3.0 1.3.1 1.3.2 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.1.0 4.1.1 4.1.2 4.1.3 4.10.0 4.11.0 4.12.0 4.13.0 4.13.2 4.13.3 4.13.4 4.13.5 4.14.0 4.14.1 4.14.2 4.15.0 4.15.1 4.15.2 4.15.3 4.2.0 4.3.0 4.3.1 4.4.1 4.4.2 4.5.0 4.6.0 5.0.1 5.0.2 5.0.3 5.0.4 5.0.5 5.0.6 5.0.7 5.0.8 5.1.0 5.1.1 5.1.2 5.1.3 5.1.4 5.1.5 5.1.6 5.1.7 5.10.0 5.2.0 5.2.1 5.2.2 5.3.0 5.3.1 5.3.2 5.3.3 5.6.0 5.6.1 5.7.0 5.7.1 5.8.0 5.8.1 5.8.2
matomo / app / plugins / UsersManager / Tasks.php
matomo / app / plugins / UsersManager Last commit date
Emails 3 years ago Repository 3 years ago Sql 3 years ago Validators 4 years ago config 5 years ago images 6 years ago lang 4 years ago stylesheets 3 years ago templates 3 years ago vue 3 years ago API.php 3 years ago Controller.php 3 years ago LastSeenTimeLogger.php 5 years ago Menu.php 5 years ago Model.php 3 years ago NewsletterSignup.php 4 years ago Tasks.php 4 years ago UserAccessFilter.php 4 years ago UserPreferences.php 5 years ago UserUpdater.php 5 years ago UsersManager.php 3 years ago
Tasks.php
75 lines
1 <?php
2
3 /**
4 * Matomo - free/libre analytics platform
5 *
6 * @link https://matomo.org
7 * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
8 */
9
10 namespace Piwik\Plugins\UsersManager;
11
12 use Piwik\Access;
13 use Piwik\Date;
14
15 class Tasks extends \Piwik\Plugin\Tasks
16 {
17 /**
18 * @var Model
19 */
20 private $usersModel;
21
22 /**
23 * @param API
24 */
25 private $usersManagerApi;
26
27 public function __construct(Model $usersModel, API $usersManagerApi)
28 {
29 $this->usersModel = $usersModel;
30 $this->usersManagerApi = $usersManagerApi;
31 }
32
33 public function schedule()
34 {
35 $this->daily("cleanupExpiredTokens");
36 $this->daily("setUserDefaultReportPreference");
37 $this->daily("cleanUpExpiredInvites");
38 }
39
40 public function cleanupExpiredTokens()
41 {
42 $this->usersModel->deleteExpiredTokens(Date::now()->getDatetime());
43 }
44
45 public function cleanUpExpiredInvites()
46 {
47 // Expired invites will be removed after 3 days, so there's a chance to resend an invite before it's removed.
48
49 $expiredInvites = $this->usersModel->getExpiredInvites(Date::now()->subDay(3)->getDatetime());
50
51 foreach ($expiredInvites as $expiredInvite) {
52 try {
53 $this->usersModel->deleteUser($expiredInvite['login']);
54 } catch (\Exception $e) {
55 // ignore possible errors thrown during delete user event
56 }
57 }
58 }
59
60 public function setUserDefaultReportPreference()
61 {
62 // We initialize the default report user preference for each user (if it hasn't been inited before) for performance,
63 // doing this lets us avoid loading all siteIds (which can be 50k or more) when this preference is requested.
64 // getting the user preference can be called quite often when generating links etc (to get defaultWebsiteId).
65 $usersModel = $this->usersModel;
66 $usersManagerApi = $this->usersManagerApi;
67 Access::getInstance()->doAsSuperUser(function () use ($usersModel, $usersManagerApi) {
68 $allUsers = $usersModel->getUsers([]);
69 foreach ($allUsers as $user) {
70 $usersManagerApi->initUserPreferenceWithDefault($user['login'], API::PREFERENCE_DEFAULT_REPORT);
71 }
72 });
73 }
74 }
75