PluginProbe
User Access Manager / 2.3.20
User Access Manager v2.3.20
2.3.20 2.3.19 2.3.18 2.3.17 2.3.16 2.3.15 2.3.14 2.3.13 trunk 0.6 0.6.1 0.6.2 0.7 0.7 Beta 0.7.0.1 0.8 0.8.0.1 0.8.0.2 0.9 0.9.1 0.9.1.1 0.9.1.2 0.9.1.3 0.9.1.4 1.0 All 136 releases
user-access-manager / src / Setup / Update / DatabaseUpdate6.php

DatabaseUpdate6.php in User Access Manager 2.3.20, at src/Setup/Update/DatabaseUpdate6.php

54 lines 1.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 declare(strict_types=1);
4
5 namespace UserAccessManager\Setup\Update;
6
7 use UserAccessManager\UserGroup\UserGroup;
8
9 class DatabaseUpdate6 extends DatabaseUpdate
10 {
11 public function getVersion(): string
12 {
13 return '1.6.1';
14 }
15
16 public function update(): bool
17 {
18 $dbAccessGroupToObject = $this->database->getUserGroupToObjectTable();
19
20 $dbGroupTypeColumn = $this->database->getVariable(
21 "SHOW COLUMNS FROM `{$dbAccessGroupToObject}`
22 LIKE 'group_type'"
23 );
24
25 if ($dbGroupTypeColumn !== 'group_type') {
26 $alterQuery = "ALTER TABLE `{$dbAccessGroupToObject}`
27 ADD `group_type` VARCHAR(32) NOT NULL AFTER `group_id`,
28 ADD `from_date` DATETIME NULL DEFAULT NULL,
29 ADD `to_date` DATETIME NULL DEFAULT NULL,
30 MODIFY `group_id` VARCHAR(32) NOT NULL,
31 MODIFY `object_id` VARCHAR(32) NOT NULL,
32 MODIFY `object_type` VARCHAR(32) NOT NULL,
33 DROP PRIMARY KEY,
34 ADD PRIMARY KEY (`object_id`, `object_type`, `group_id`, `group_type`)";
35 } else {
36 $alterQuery = "ALTER TABLE `{$dbAccessGroupToObject}`
37 MODIFY `group_type` VARCHAR(32) NOT NULL,
38 MODIFY `group_id` VARCHAR(32) NOT NULL,
39 MODIFY `object_id` VARCHAR(32) NOT NULL,
40 MODIFY `object_type` VARCHAR(32) NOT NULL";
41 }
42
43 $success = $this->database->query($alterQuery) !== false;
44
45 $update = $this->database->update(
46 $dbAccessGroupToObject,
47 ['group_type' => UserGroup::USER_GROUP_TYPE],
48 ['group_type' => '']
49 );
50
51 return $success && $update !== false;
52 }
53 }
54