diff --git a/include/upgrader/streams/core/0d6099a6-98ad7d55.patch.sql b/include/upgrader/streams/core/0d6099a6-98ad7d55.patch.sql index 35c654582659f8bb30eaddcc9fd1eef35eb68422..be6707ec63dc7f673ecb7c5f3373eb07cbd75812 100644 --- a/include/upgrader/streams/core/0d6099a6-98ad7d55.patch.sql +++ b/include/upgrader/streams/core/0d6099a6-98ad7d55.patch.sql @@ -15,11 +15,16 @@ CREATE TABLE `%TABLE_PREFIX%staff_dept_access` ( KEY `dept_id` (`dept_id`) ) DEFAULT CHARSET=utf8; +-- Expand staff -> group -> dept_access to staff -> dept_access +-- At the same time, drop primary department from staff_dept_access INSERT INTO `%TABLE_PREFIX%staff_dept_access` (`staff_id`, `dept_id`, `role_id`) - SELECT A1.`staff_id`, A2.`dept_id`, A2.`role_id` + SELECT A1.`staff_id`, A2.`dept_id`, + CASE WHEN A2.`role_id` = 0 THEN A3.`role_id` ELSE A2.`role_id` END FROM `%TABLE_PREFIX%staff` A1 - JOIN `%TABLE_PREFIX%group_dept_access` A2 ON (A1.`group_id` = A2.`group_id`); + JOIN `%TABLE_PREFIX%group_dept_access` A2 ON (A1.`group_id` = A2.`group_id`) + JOIN `%TABLE_PREFIX%group` A3 ON (A3.`id` = A1.`group_id`) + WHERE A2.`dept_id` != A1.`dept_id`; ALTER TABLE `%TABLE_PREFIX%staff` DROP `group_id`, diff --git a/include/upgrader/streams/core/1ee831c8-36f6b328.cleanup.sql b/include/upgrader/streams/core/1ee831c8-36f6b328.cleanup.sql index 0355df4757646be61acf5e727ed2761f233c38a1..2bbe6cba034b1486977c4f1fbec13403a1807b6f 100644 --- a/include/upgrader/streams/core/1ee831c8-36f6b328.cleanup.sql +++ b/include/upgrader/streams/core/1ee831c8-36f6b328.cleanup.sql @@ -1,17 +1,2 @@ --- drop old permissions from group table -ALTER TABLE `%TABLE_PREFIX%group` - DROP `group_enabled`, - DROP `can_create_tickets`, - DROP `can_edit_tickets`, - DROP `can_post_ticket_reply`, - DROP `can_delete_tickets`, - DROP `can_close_tickets`, - DROP `can_assign_tickets`, - DROP `can_transfer_tickets`, - DROP `can_ban_emails`, - DROP `can_manage_premade`, - DROP `can_manage_faq`, - DROP `can_view_staff_stats`; - -- drop useless updated column ALTER TABLE `%TABLE_PREFIX%team_member` DROP `updated`; diff --git a/include/upgrader/streams/core/1ee831c8-36f6b328.patch.sql b/include/upgrader/streams/core/1ee831c8-36f6b328.patch.sql index 32d98f2816fc5288f1a14918b37698a1667f6977..850441a57d1045b15c5f58d73831e8472bdbf3b4 100644 --- a/include/upgrader/streams/core/1ee831c8-36f6b328.patch.sql +++ b/include/upgrader/streams/core/1ee831c8-36f6b328.patch.sql @@ -27,12 +27,7 @@ ALTER TABLE `%TABLE_PREFIX%staff` ALTER TABLE `%TABLE_PREFIX%groups` CHANGE `group_id` `id` INT UNSIGNED NOT NULL AUTO_INCREMENT, - CHANGE `group_name` `name` VARCHAR(120) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '', - ADD `role_id` INT UNSIGNED NOT NULL DEFAULT '0' AFTER `id` , - ADD `flags` INT UNSIGNED NOT NULL DEFAULT '1' AFTER `role_id`, - ADD INDEX (`role_id`); - -RENAME TABLE `%TABLE_PREFIX%groups` TO `%TABLE_PREFIX%group`; + ADD `role_id` INT UNSIGNED NOT NULL DEFAULT '0' AFTER `id`; -- department changes ALTER TABLE `%TABLE_PREFIX%department` diff --git a/include/upgrader/streams/core/1ee831c8-36f6b328.task.php b/include/upgrader/streams/core/1ee831c8-36f6b328.task.php index ddf1098207c1aacd20b0d81c40d31221118f6164..f70c4e2bfd22896d4f1219aee309a398aca6ca9c 100644 --- a/include/upgrader/streams/core/1ee831c8-36f6b328.task.php +++ b/include/upgrader/streams/core/1ee831c8-36f6b328.task.php @@ -1,5 +1,6 @@ <?php -define('GROUP_TABLE', TABLE_PREFIX.'group'); +define('GROUP_TABLE', TABLE_PREFIX.'groups'); +define('GROUP_DEPT_TABLE', TABLE_PREFIX.'group_dept_access'); class Group extends VerySimpleModel { static $meta = array( 'table' => GROUP_TABLE, @@ -8,7 +9,10 @@ class Group extends VerySimpleModel { const FLAG_ENABLED = 0x0001; function getName() { - return $this->name; + return $this->group_name; + } + function getId() { + return $this->id; } }