PluginProbe ʕ •ᴥ•ʔ
Matomo Analytics – Powerful, Privacy-First Insights for WordPress / trunk
Matomo Analytics – Powerful, Privacy-First Insights for WordPress vtrunk
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 / core / Updates / 4.11.0-rc2.php
matomo / app / core / Updates Last commit date
3.12.0-b1.php 2 years ago 3.12.0-b7.php 2 years ago 4.0.0-b1.php 7 months ago 4.0.0-b3.php 2 years ago 4.0.0-rc3.php 2 years ago 4.0.0-rc4.php 2 months ago 4.0.1-b1.php 2 years ago 4.0.4-b1.php 2 years ago 4.1.2-b1.php 2 years ago 4.1.2-b2.php 2 years ago 4.10.0-b1.php 2 months ago 4.11.0-b1.php 2 months ago 4.11.0-rc2.php 2 months ago 4.12.0-b1.php 2 months ago 4.12.0-b2.php 2 months ago 4.12.0-b3.php 2 months ago 4.12.0-b4.php 2 months ago 4.3.0-b3.php 2 years ago 4.3.0-b4.php 7 months ago 4.3.0-rc2.php 2 years ago 4.4.0-b1.php 2 years ago 4.5.0-b1.php 2 years ago 4.6.0-b1.php 2 years ago 4.6.0-b4.php 3 months ago 4.6.2-rc2.php 3 months ago 4.7.0-b2.php 2 months ago 4.7.1-b1.php 2 months ago 5.0.0-b1.php 1 year ago 5.0.0-rc2.php 2 years ago 5.0.0-rc5.php 2 months ago 5.11.0-b1.php 2 weeks ago 5.2.0-b2.php 1 year ago 5.2.0-b6.php 1 year ago 5.3.0-b1.php 1 year ago 5.3.0-rc1.php 1 year ago 5.4.0-b1.php 7 months ago 5.4.0-b3.php 7 months ago 5.4.0-b4.php 2 months ago 5.5.0-b2.php 2 months ago 5.6.0-b1.php 2 months ago 5.7.0-b1.php 4 months ago 5.7.0-b2.php 3 months ago 5.7.0-b3.php 4 months ago 5.8.0-b1.php 3 months ago 5.8.0-b2.php 3 months ago 5.9.0-b1.php 2 months ago 5.9.0-b2.php 2 months ago
4.11.0-rc2.php
76 lines
1 <?php
2
3 /**
4 * Matomo - free/libre analytics platform
5 *
6 * @link https://matomo.org
7 * @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
8 */
9 namespace Piwik\Updates;
10
11 use Piwik\Common;
12 use Piwik\Container\StaticContainer;
13 use Piwik\Db;
14 use Piwik\Piwik;
15 use Piwik\Plugins\UsersManager\Emails\UserInviteEmail;
16 use Piwik\Plugins\UsersManager\Model;
17 use Piwik\Site;
18 use Piwik\Updater;
19 use Piwik\Updater\Migration;
20 use Piwik\Updater\Migration\Factory as MigrationFactory;
21 use Piwik\Updates as PiwikUpdates;
22 /**
23 * Update for version 4.11.0-rc2
24 */
25 class Updates_4_11_0_rc2 extends PiwikUpdates
26 {
27 /**
28 * @var MigrationFactory
29 */
30 private $migration;
31 private $pendingUsers;
32 private $userTable;
33 public function __construct(MigrationFactory $factory)
34 {
35 $this->migration = $factory;
36 $this->userTable = Common::prefixTable('user');
37 }
38 /**
39 * @return Migration[]
40 */
41 public function getMigrations(Updater $updater)
42 {
43 try {
44 $this->pendingUsers = Db::fetchAll("SELECT * FROM `{$this->userTable}` WHERE invite_status = ? ", ['pending']);
45 } catch (\Exception $e) {
46 // ignore any errors. The column might not exist when updating from an older version,
47 // so there wouldn't be anything to update anyway
48 }
49 return [$this->migration->db->dropColumn('user', 'invite_status'), $this->migration->db->addColumns('user', ['invite_token' => 'VARCHAR(191) DEFAULT null']), $this->migration->db->addColumns('user', ['invited_by' => 'VARCHAR(100) DEFAULT null']), $this->migration->db->addColumns('user', ['invite_expired_at' => 'TIMESTAMP null DEFAULT null']), $this->migration->db->addColumns('user', ['invite_accept_at' => 'TIMESTAMP null DEFAULT null'])];
50 }
51 public function doUpdate(Updater $updater)
52 {
53 $updater->executeMigrations(__FILE__, $this->getMigrations($updater));
54 $model = new Model();
55 if (!empty($this->pendingUsers)) {
56 foreach ($this->pendingUsers as $user) {
57 $model->deleteAllTokensForUser($user['login']);
58 $site = $model->getSitesAccessFromUser($user['login']);
59 if (isset($site[0])) {
60 $site = new Site($site[0]['site']);
61 $siteName = $site->getName();
62 } else {
63 $siteName = "Default Site";
64 }
65 //generate Token
66 $generatedToken = $model->generateRandomTokenAuth();
67 //attach token to user
68 $model->attachInviteToken($user['login'], $generatedToken, 7);
69 // send email
70 $email = StaticContainer::getContainer()->make(UserInviteEmail::class, ['currentUser' => Piwik::getCurrentUserLogin(), 'invitedUser' => $user, 'siteName' => $siteName, 'token' => $generatedToken, 'expiryInDays' => 7]);
71 $email->safeSend();
72 }
73 }
74 }
75 }
76