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