diff --git a/app/Database/Migrations/20181031062503_create_user_variables.php b/app/Database/Migrations/20181031062503_create_user_variables.php index 250c18c..0bbdf22 100644 --- a/app/Database/Migrations/20181031062503_create_user_variables.php +++ b/app/Database/Migrations/20181031062503_create_user_variables.php @@ -65,6 +65,7 @@ class Migration_create_user_variables extends Migration ], ]); $this->forge->addKey('id', true); + $this->forge->addForeignKey('user_id', $config->dbTableUsers, 'id'); $this->forge->createTable($config->dbTableUserVariables, true); } @@ -78,6 +79,7 @@ class Migration_create_user_variables extends Migration public function down() { $config = new AauthConfig(); + $this->forge->dropForeignKey($config->dbTableUserVariables, $config->dbTableUserVariables . '_user_id_foreign'); $this->forge->dropTable($config->dbTableUserVariables, true); } } diff --git a/app/Database/Migrations/20181031063642_create_login_tokens.php b/app/Database/Migrations/20181031063642_create_login_tokens.php index 4bc8a12..225db01 100644 --- a/app/Database/Migrations/20181031063642_create_login_tokens.php +++ b/app/Database/Migrations/20181031063642_create_login_tokens.php @@ -47,7 +47,7 @@ class Migration_create_login_tokens extends Migration 'user_id' => [ 'type' => 'INT', 'constraint' => 11, - 'default' => 0, + 'unsigned' => true, ], 'random_hash' => [ 'type' => 'VARCHAR', @@ -62,6 +62,7 @@ class Migration_create_login_tokens extends Migration 'expires_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP', ]); $this->forge->addKey('id', true); + $this->forge->addForeignKey('user_id', $config->dbTableUsers, 'id'); $this->forge->createTable($config->dbTableLoginTokens, true); } @@ -75,6 +76,7 @@ class Migration_create_login_tokens extends Migration public function down() { $config = new AauthConfig(); + $this->forge->dropForeignKey($config->dbTableLoginTokens, $config->dbTableLoginTokens . '_user_id_foreign'); $this->forge->dropTable($config->dbTableLoginTokens, true); } } diff --git a/app/Database/Migrations/20181031064311_create_group_variables.php b/app/Database/Migrations/20181031064311_create_group_variables.php index 5ddc4d9..f43825d 100644 --- a/app/Database/Migrations/20181031064311_create_group_variables.php +++ b/app/Database/Migrations/20181031064311_create_group_variables.php @@ -65,6 +65,7 @@ class Migration_create_group_variables extends Migration ], ]); $this->forge->addKey('id', true); + $this->forge->addForeignKey('group_id', $config->dbTableGroups, 'id'); $this->forge->createTable($config->dbTableGroupVariables, true); } @@ -78,6 +79,7 @@ class Migration_create_group_variables extends Migration public function down() { $config = new AauthConfig(); + $this->forge->dropForeignKey($config->dbTableGroupVariables, $config->dbTableGroupVariables . '_group_id_foreign'); $this->forge->dropTable($config->dbTableGroupVariables, true); } } diff --git a/app/Database/Migrations/20181031064431_create_group_to_user.php b/app/Database/Migrations/20181031064431_create_group_to_user.php index fb108d1..69cf5d4 100644 --- a/app/Database/Migrations/20181031064431_create_group_to_user.php +++ b/app/Database/Migrations/20181031064431_create_group_to_user.php @@ -50,6 +50,8 @@ class Migration_create_group_to_user extends Migration ], ]); $this->forge->addKey(['group_id', 'user_id'], true); + $this->forge->addForeignKey('user_id', $config->dbTableUsers, 'id'); + $this->forge->addForeignKey('group_id', $config->dbTableGroups, 'id'); $this->forge->createTable($config->dbTableGroupToUser, true); } @@ -63,6 +65,8 @@ class Migration_create_group_to_user extends Migration public function down() { $config = new AauthConfig(); + $this->forge->dropForeignKey($config->dbTableGroupToUser, $config->dbTableGroupToUser . '_user_id_foreign'); + $this->forge->dropForeignKey($config->dbTableGroupToUser, $config->dbTableGroupToUser . '_group_id_foreign'); $this->forge->dropTable($config->dbTableGroupToUser, true); } } diff --git a/app/Database/Migrations/20181031064550_create_group_to_group.php b/app/Database/Migrations/20181031064550_create_group_to_group.php index 6ab0915..24f1e9b 100644 --- a/app/Database/Migrations/20181031064550_create_group_to_group.php +++ b/app/Database/Migrations/20181031064550_create_group_to_group.php @@ -50,6 +50,8 @@ class Migration_create_group_to_group extends Migration ], ]); $this->forge->addKey(['group_id', 'subgroup_id'], true); + $this->forge->addForeignKey('group_id', $config->dbTableGroups, 'id'); + $this->forge->addForeignKey('subgroup_id', $config->dbTableGroups, 'id'); $this->forge->createTable($config->dbTableGroupToGroup, true); } @@ -63,6 +65,8 @@ class Migration_create_group_to_group extends Migration public function down() { $config = new AauthConfig(); + $this->forge->dropForeignKey($config->dbTableGroupToGroup, $config->dbTableGroupToGroup . '_group_id_foreign'); + $this->forge->dropForeignKey($config->dbTableGroupToGroup, $config->dbTableGroupToGroup . '_subgroup_id_foreign'); $this->forge->dropTable($config->dbTableGroupToGroup, true); } } diff --git a/app/Database/Migrations/20181031065111_create_perm_to_user.php b/app/Database/Migrations/20181031065111_create_perm_to_user.php index 645c4ac..a8b8169 100644 --- a/app/Database/Migrations/20181031065111_create_perm_to_user.php +++ b/app/Database/Migrations/20181031065111_create_perm_to_user.php @@ -55,6 +55,8 @@ class Migration_create_perm_to_user extends Migration ], ]); $this->forge->addKey(['perm_id', 'user_id'], true); + $this->forge->addForeignKey('perm_id', $config->dbTablePerms, 'id', 'CASCADE', 'CASCADE'); + $this->forge->addForeignKey('user_id', $config->dbTableUsers, 'id', 'CASCADE', 'CASCADE'); $this->forge->createTable($config->dbTablePermToUser, true); } @@ -68,6 +70,8 @@ class Migration_create_perm_to_user extends Migration public function down() { $config = new AauthConfig(); + $this->forge->dropForeignKey($config->dbTablePermToUser, $config->dbTablePermToUser . '_perm_id_foreign'); + $this->forge->dropForeignKey($config->dbTablePermToUser, $config->dbTablePermToUser . '_user_id_foreign'); $this->forge->dropTable($config->dbTablePermToUser, true); } } diff --git a/app/Database/Migrations/20181031065240_create_perm_to_group.php b/app/Database/Migrations/20181031065240_create_perm_to_group.php index 12e7cde..fec765f 100644 --- a/app/Database/Migrations/20181031065240_create_perm_to_group.php +++ b/app/Database/Migrations/20181031065240_create_perm_to_group.php @@ -55,6 +55,8 @@ class Migration_create_perm_to_group extends Migration ], ]); $this->forge->addKey(['perm_id', 'group_id'], true); + $this->forge->addForeignKey('perm_id', $config->dbTablePerms, 'id', 'CASCADE', 'CASCADE'); + $this->forge->addForeignKey('group_id', $config->dbTableGroups, 'id', 'CASCADE', 'CASCADE'); $this->forge->createTable($config->dbTablePermToGroup, true); } @@ -68,6 +70,8 @@ class Migration_create_perm_to_group extends Migration public function down() { $config = new AauthConfig(); + $this->forge->dropForeignKey($config->dbTablePermToGroup, $config->dbTablePermToGroup . '_perm_id_foreign'); + $this->forge->dropForeignKey($config->dbTablePermToGroup, $config->dbTablePermToGroup . '_group_id_foreign'); $this->forge->dropTable($config->dbTablePermToGroup, true); } } diff --git a/app/Database/Migrations/20181031072542_create_default_groups.php b/app/Database/Migrations/20181031072542_create_default_groups.php index afe2dba..76e009e 100644 --- a/app/Database/Migrations/20181031072542_create_default_groups.php +++ b/app/Database/Migrations/20181031072542_create_default_groups.php @@ -37,20 +37,35 @@ class Migration_create_default_groups extends Migration public function up() { $config = new AauthConfig(); - $data = [ - [ - 'name' => $config->groupAdmin, - 'definition' => 'Administators', - ], - [ - 'name' => $config->groupDefault, - 'definition' => 'Users', - ], - [ - 'name' => $config->groupPublic, - 'definition' => 'Guests', - ], + + $adminGroup = [ + 'name' => $config->groupAdmin, + 'definition' => 'Administators', + ]; + $defaultGroup = [ + 'name' => $config->groupDefault, + 'definition' => 'Users', ]; + $publicGroup = [ + 'name' => $config->groupPublic, + 'definition' => 'Guests', + ]; + + if ($config->groupDefault) + { + $data = [ + $adminGroup, + $defaultGroup, + $publicGroup, + ]; + } + else + { + $data = [ + $adminGroup, + $publicGroup, + ]; + } $this->db->table($config->dbTableGroups)->insertBatch($data); } @@ -65,6 +80,8 @@ class Migration_create_default_groups extends Migration public function down() { $config = new AauthConfig(); + $this->db->simpleQuery('SET FOREIGN_KEY_CHECKS = 0;'); $this->db->table($config->dbTableGroups)->truncate(); + $this->db->simpleQuery('SET FOREIGN_KEY_CHECKS = 1;'); } } diff --git a/app/Database/Migrations/20181031072914_create_default_users.php b/app/Database/Migrations/20181031072914_create_default_users.php index 9ce8fb0..baf86bc 100644 --- a/app/Database/Migrations/20181031072914_create_default_users.php +++ b/app/Database/Migrations/20181031072914_create_default_users.php @@ -61,11 +61,15 @@ class Migration_create_default_users extends Migration 'group_id' => 2, 'user_id' => 1, ], - [ + ]; + + if ($config->groupDefault) + { + $data[] = [ 'group_id' => 2, 'user_id' => 2, - ], - ]; + ]; + } $this->db->table($config->dbTableGroupToUser)->insertBatch($data); } @@ -80,7 +84,9 @@ class Migration_create_default_users extends Migration public function down() { $config = new AauthConfig(); + $this->db->simpleQuery('SET FOREIGN_KEY_CHECKS = 0;'); $this->db->table($config->dbTableUsers)->truncate(); $this->db->table($config->dbTableGroupToUser)->truncate(); + $this->db->simpleQuery('SET FOREIGN_KEY_CHECKS = 1;'); } }