PluginProbe
User Access Manager / trunk
User Access Manager vtrunk
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
← All changes | src/Setup/Update/DatabaseUpdate4.php +19 -40 2.3.16trunk View file →
@@ -4,9 +4,8 @@
4 4
5 5 namespace UserAccessManager\Setup\Update;
6 6
7 7 use UserAccessManager\Object\ObjectHandler;
8 -use UserAccessManager\Setup\Database\DatabaseUpdate;
9 8
10 9 class DatabaseUpdate4 extends DatabaseUpdate
11 10 {
12 11 public function getVersion(): string
@@ -16,54 +15,34 @@
16 15
17 16 public function update(): bool
18 17 {
19 18 $dbAccessGroupToObject = $this->database->getUserGroupToObjectTable();
20 - $alterQuery = "ALTER TABLE {$dbAccessGroupToObject}
21 - ADD general_object_type VARCHAR(64) NOT NULL AFTER object_id";
19 + $alterQuery = "ALTER TABLE `{$dbAccessGroupToObject}`
20 + ADD `general_object_type` VARCHAR(64) NOT NULL AFTER `object_id`";
22 21
23 22 $success = $this->database->query($alterQuery) !== false;
24 23
25 - // Update post entries
26 - $generalPostType = ObjectHandler::GENERAL_POST_OBJECT_TYPE;
27 -
28 - $query = "UPDATE {$dbAccessGroupToObject}
29 - SET general_object_type = '$generalPostType'
30 - WHERE object_type IN ('post', 'page', 'attachment')";
31 -
32 - $success = $success && $this->database->query($query) !== false;
33 -
34 - // Update role entries
35 - $generalRoleType = ObjectHandler::GENERAL_ROLE_OBJECT_TYPE;
36 -
37 - $query = "UPDATE {$dbAccessGroupToObject}
38 - SET general_object_type = '$generalRoleType'
39 - WHERE object_type = 'role'";
40 -
41 - $success = $success && $this->database->query($query) !== false;
42 -
43 - // Update user entries
44 - $generalUserType = ObjectHandler::GENERAL_USER_OBJECT_TYPE;
45 -
46 - $query = "UPDATE {$dbAccessGroupToObject}
47 - SET general_object_type = '$generalUserType'
48 - WHERE object_type = 'user'";
49 -
50 - $success = $success && $this->database->query($query) !== false;
51 -
52 - // Update term entries
53 24 $generalTermType = ObjectHandler::GENERAL_TERM_OBJECT_TYPE;
25 + $objectTypeConditions = [
26 + ObjectHandler::GENERAL_POST_OBJECT_TYPE => "`object_type` IN ('post', 'page', 'attachment')",
27 + ObjectHandler::GENERAL_ROLE_OBJECT_TYPE => "`object_type` = 'role'",
28 + ObjectHandler::GENERAL_USER_OBJECT_TYPE => "`object_type` = 'user'",
29 + $generalTermType => "`object_type` = 'term'"
30 + ];
54 31
55 - $query = "UPDATE {$dbAccessGroupToObject}
56 - SET general_object_type = '$generalTermType'
57 - WHERE object_type = 'term'";
32 + foreach ($objectTypeConditions as $generalObjectType => $condition) {
33 + $query = "UPDATE `{$dbAccessGroupToObject}`
34 + SET `general_object_type` = '$generalObjectType'
35 + WHERE $condition";
58 36
59 - $success = $success && $this->database->query($query) !== false;
37 + $success = $success && $this->database->query($query) !== false;
38 + }
60 39
61 - $query = "UPDATE $dbAccessGroupToObject AS gto
62 - LEFT JOIN {$this->database->getTermTaxonomyTable()} AS tt
63 - ON gto.object_id = tt.term_id
64 - SET gto.object_type = tt.taxonomy
65 - WHERE gto.general_object_type = '$generalTermType'";
40 + $query = "UPDATE `$dbAccessGroupToObject` AS `gto`
41 + LEFT JOIN `{$this->database->getTermTaxonomyTable()}` AS `tt`
42 + ON `gto`.`object_id` = `tt`.`term_id`
43 + SET `gto`.`object_type` = `tt`.`taxonomy`
44 + WHERE `gto`.`general_object_type` = '$generalTermType'";
66 45
67 46 return $success && $this->database->query($query) !== false;
68 47 }
69 48 }