PluginProbe
User Access Manager / 2.1.3
User Access Manager v2.1.3
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 / Update6.php

Update6.php in User Access Manager 2.1.3, at src/Setup/Update/Update6.php

79 lines 2.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Update6.php
4 *
5 * The Update6 class file.
6 *
7 * PHP versions 5
8 *
9 * @author Alexander Schneider <alexanderschneider85@gmail.com>
10 * @copyright 2008-2017 Alexander Schneider
11 * @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License, version 2
12 * @version SVN: $id$
13 * @link http://wordpress.org/extend/plugins/user-access-manager/
14 */
15 namespace UserAccessManager\Setup\Update;
16
17 use UserAccessManager\UserGroup\UserGroup;
18
19 /**
20 * Class Update6
21 *
22 * @package UserAccessManager\Setup\Update
23 */
24 class Update6 extends Update implements UpdateInterface
25 {
26 /**
27 * Returns the version.
28 *
29 * @return string
30 */
31 public function getVersion()
32 {
33 return '1.6.1';
34 }
35
36 /**
37 * Executes the update.
38 *
39 * @return bool
40 */
41 public function update()
42 {
43 $dbAccessGroupToObject = $this->database->getUserGroupToObjectTable();
44
45 $dbGroupTypeColumn = $this->database->getVariable(
46 "SHOW COLUMNS FROM {$dbAccessGroupToObject}
47 LIKE 'group_type'"
48 );
49
50 if ($dbGroupTypeColumn !== 'group_type') {
51 $alterQuery = "ALTER TABLE {$dbAccessGroupToObject}
52 ADD group_type VARCHAR(32) NOT NULL AFTER group_id,
53 ADD from_date DATETIME NULL DEFAULT NULL,
54 ADD to_date DATETIME NULL DEFAULT NULL,
55 MODIFY group_id VARCHAR(32) NOT NULL,
56 MODIFY object_id VARCHAR(32) NOT NULL,
57 MODIFY object_type VARCHAR(32) NOT NULL,
58 DROP PRIMARY KEY,
59 ADD PRIMARY KEY (object_id, object_type, group_id, group_type)";
60 } else {
61 $alterQuery = "ALTER TABLE {$dbAccessGroupToObject}
62 MODIFY group_type VARCHAR(32) NOT NULL,
63 MODIFY group_id VARCHAR(32) NOT NULL,
64 MODIFY object_id VARCHAR(32) NOT NULL,
65 MODIFY object_type VARCHAR(32) NOT NULL";
66 }
67
68 $success = $this->database->query($alterQuery) !== false;
69
70 $update = $this->database->update(
71 $dbAccessGroupToObject,
72 ['group_type' => UserGroup::USER_GROUP_TYPE],
73 ['group_type' => '']
74 );
75
76 return $success && $update !== false;
77 }
78 }
79