From eec998faacf71d0381093cda3b17d6b8a3fd3308 Mon Sep 17 00:00:00 2001 From: Marcelo de Andrade Date: Fri, 5 Oct 2018 18:59:46 -0300 Subject: [PATCH] Fixes #16490: Fix schema on rbac init --- framework/CHANGELOG.md | 1 + framework/rbac/migrations/m140506_102106_rbac_init.php | 11 ++++++----- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/framework/CHANGELOG.md b/framework/CHANGELOG.md index 0603b56..fe37689 100644 --- a/framework/CHANGELOG.md +++ b/framework/CHANGELOG.md @@ -4,6 +4,7 @@ Yii Framework 2 Change Log 2.0.16 under development ------------------------ +- Bug #16490: Fix schema on rbac init (marcelodeandrade) - Bug #16748: Fixed params when normalize data (marcelodeandrade) - Bug #16752: Fix rotating files under Windows (samdark, nadirvishun) - Bug #16716: The ability to filter by pressing the Enter key when the option `$filterOnFocusOut` off (s1lver) diff --git a/framework/rbac/migrations/m140506_102106_rbac_init.php b/framework/rbac/migrations/m140506_102106_rbac_init.php index 72083c3..e94afec 100644 --- a/framework/rbac/migrations/m140506_102106_rbac_init.php +++ b/framework/rbac/migrations/m140506_102106_rbac_init.php @@ -50,6 +50,7 @@ class m140506_102106_rbac_init extends \yii\db\Migration { $authManager = $this->getAuthManager(); $this->db = $authManager->db; + $schema = $this->db->getSchema()->defaultSchema; $tableOptions = null; if ($this->db->driverName === 'mysql') { @@ -99,8 +100,8 @@ class m140506_102106_rbac_init extends \yii\db\Migration ], $tableOptions); if ($this->isMSSQL()) { - $this->execute("CREATE TRIGGER dbo.trigger_auth_item_child - ON dbo.{$authManager->itemTable} + $this->execute("CREATE TRIGGER {$schema}.trigger_auth_item_child + ON {$schema}.{$authManager->itemTable} INSTEAD OF DELETE, UPDATE AS DECLARE @old_name VARCHAR (64) = (SELECT name FROM deleted) @@ -129,8 +130,8 @@ class m140506_102106_rbac_init extends \yii\db\Migration END ELSE BEGIN - DELETE FROM dbo.{$authManager->itemChildTable} WHERE parent IN (SELECT name FROM deleted) OR child IN (SELECT name FROM deleted); - DELETE FROM dbo.{$authManager->itemTable} WHERE name IN (SELECT name FROM deleted); + DELETE FROM {$schema}.{$authManager->itemChildTable} WHERE parent IN (SELECT name FROM deleted) OR child IN (SELECT name FROM deleted); + DELETE FROM {$schema}.{$authManager->itemTable} WHERE name IN (SELECT name FROM deleted); END END;"); } @@ -145,7 +146,7 @@ class m140506_102106_rbac_init extends \yii\db\Migration $this->db = $authManager->db; if ($this->isMSSQL()) { - $this->execute('DROP TRIGGER dbo.trigger_auth_item_child;'); + $this->execute('DROP TRIGGER {$schema}.trigger_auth_item_child;'); } $this->dropTable($authManager->assignmentTable);