Browse Source

Fixes #16490: Fix schema on rbac init

tags/2.0.16
Marcelo de Andrade 6 years ago committed by Alexander Makarov
parent
commit
eec998faac
  1. 1
      framework/CHANGELOG.md
  2. 11
      framework/rbac/migrations/m140506_102106_rbac_init.php

1
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)

11
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);

Loading…
Cancel
Save