Browse Source

added Database/Migrations

(closes #3)
v3-dev
REJack 7 years ago
parent
commit
8040d49956
  1. 0
      Database/Migrations/.gitkeep
  2. 45
      Database/Migrations/20181026042034_create_ci_sessions_table.php
  3. 71
      Database/Migrations/20181026110732_create_users_table.php
  4. 52
      Database/Migrations/20181031062503_create_user_variables.php
  5. 42
      Database/Migrations/20181031063113_create_login_attempts.php
  6. 37
      Database/Migrations/20181031064211_create_groups.php
  7. 34
      Database/Migrations/20181031064431_create_group_to_user.php
  8. 34
      Database/Migrations/20181031064550_create_group_to_group.php
  9. 37
      Database/Migrations/20181031064714_create_perms.php
  10. 34
      Database/Migrations/20181031065111_create_perm_to_user.php
  11. 34
      Database/Migrations/20181031065240_create_perm_to_group.php
  12. 36
      Database/Migrations/20181031072542_create_default_groups.php
  13. 41
      Database/Migrations/20181031072914_create_default_admin.php

0
Database/Migrations/.gitkeep

45
Database/Migrations/20181026042034_create_ci_sessions_table.php

@ -0,0 +1,45 @@
<?php namespace Magefly\Aauth\Database\Migrations;
use CodeIgniter\Database\Migration;
class Migration_create_ci_sessions_table extends Migration
{
public function up()
{
$this->forge->addField([
'id' => [
'type' => 'VARCHAR',
'constraint' => 128,
'null' => false
],
'ip_address' => [
'type' => 'VARCHAR',
'constraint' => 45,
'null' => false
],
'timestamp' => [
'type' => 'INT',
'constraint' => 10,
'unsigned' => true,
'null' => false,
'default' => 0
],
'data' => [
'type' => 'TEXT',
'null' => false,
'default' => ''
],
]);
$this->forge->addKey('id', true);
$this->forge->addKey('timestamp');
$this->forge->createTable('ci_sessions', true);
}
//--------------------------------------------------------------------
public function down()
{
$this->forge->dropTable('ci_sessions', true);
}
}

71
Database/Migrations/20181026110732_create_users_table.php

@ -0,0 +1,71 @@
<?php namespace Magefly\Aauth\Database\Migrations;
use CodeIgniter\Database\Migration;
use Magefly\Aauth\Config\Aauth as AauthConfig;
class Migration_create_users_table extends Migration
{
public function up()
{
$config = new AauthConfig();
$this->forge->addField([
'id' => array(
'type' => 'INT',
'constraint' => 11,
'unsigned' => TRUE,
'auto_increment' => TRUE,
),
'email' => array(
'type' => 'VARCHAR',
'constraint' => 254,
),
'username' => array(
'type' => 'VARCHAR',
'constraint' => 150,
'null' => TRUE,
),
'password' => array(
'type' => 'VARCHAR',
'constraint' => 60,
),
'banned' => array(
'type' => 'TINYINT',
'constraint' => 1,
'null' => TRUE,
'default' => 0,
),
'created_datetime DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP',
'updated_datetime DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP',
'last_activity' => array(
'type' => 'DATETIME',
'default' => NULL,
),
'last_ip_address' => array(
'type' => 'VARCHAR',
'constraint' => 39,
'default' => '',
),
'last_login' => array(
'type' => 'DATETIME',
'default' => NULL,
),
'deleted' => array(
'type' => 'TINYINT',
'constraint' => 1,
'default' => 0,
),
]);
$this->forge->addKey('id', TRUE);
$this->forge->createTable($config->dbTableUsers, TRUE);
}
//--------------------------------------------------------------------
public function down()
{
$config = new AauthConfig();
$this->forge->dropTable($config->dbTableUsers, true);
}
}

52
Database/Migrations/20181031062503_create_user_variables.php

@ -0,0 +1,52 @@
<?php namespace Magefly\Aauth\Database\Migrations;
use CodeIgniter\Database\Migration;
use Magefly\Aauth\Config\Aauth as AauthConfig;
class Migration_create_user_variables extends Migration
{
public function up()
{
$config = new AauthConfig();
$this->forge->addField([
'id' => array(
'type' => 'INT',
'constraint' => 11,
'unsigned' => TRUE,
'auto_increment' => TRUE,
),
'user_id' => array(
'type' => 'INT',
'constraint' => 11,
'unsigned' => TRUE,
),
'data_key' => array(
'type' => 'VARCHAR',
'constraint' => 100,
),
'data_value' => array(
'type' => 'TEXT',
),
'created_datetime DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP',
'updated_datetime' => array(
'type' => 'DATETIME',
'default' => NULL,
),
'system' => array(
'type' => 'TINYINT',
'constraint' => 1,
'default' => 0,
),
]);
$this->forge->addKey('id', TRUE);
$this->forge->createTable($config->dbTableUserVariables, TRUE);
}
//--------------------------------------------------------------------
public function down()
{
$config = new AauthConfig();
$this->forge->dropTable($config->dbTableUserVariables, true);
}
}

42
Database/Migrations/20181031063113_create_login_attempts.php

@ -0,0 +1,42 @@
<?php namespace Magefly\Aauth\Database\Migrations;
use CodeIgniter\Database\Migration;
use Magefly\Aauth\Config\Aauth as AauthConfig;
class Migration_create_login_attempts extends Migration
{
public function up()
{
$config = new AauthConfig();
$this->forge->addField([
'id' => array(
'type' => 'INT',
'constraint' => 11,
'unsigned' => TRUE,
'auto_increment' => TRUE,
),
'ip_address' => array(
'type' => 'VARCHAR',
'constraint' => 39,
'default' => 0,
),
'count' => array(
'type' => 'TINYINT',
'constraint' => 2,
'default' => 0,
),
'created_datetime DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP',
'updated_datetime DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP',
]);
$this->forge->addKey('id', TRUE);
$this->forge->createTable($config->dbTableLoginAttempts, TRUE);
}
//--------------------------------------------------------------------
public function down()
{
$config = new AauthConfig();
$this->forge->dropTable($config->dbTableLoginAttempts, true);
}
}

37
Database/Migrations/20181031064211_create_groups.php

@ -0,0 +1,37 @@
<?php namespace Magefly\Aauth\Database\Migrations;
use CodeIgniter\Database\Migration;
use Magefly\Aauth\Config\Aauth as AauthConfig;
class Migration_create_groups extends Migration
{
public function up()
{
$config = new AauthConfig();
$this->forge->addField([
'id' => array(
'type' => 'INT',
'constraint' => 11,
'unsigned' => TRUE,
'auto_increment' => TRUE,
),
'name' => array(
'type' => 'VARCHAR',
'constraint' => 100,
),
'definition' => array(
'type' => 'TEXT',
),
]);
$this->forge->addKey('id', TRUE);
$this->forge->createTable($config->dbTableGroups, TRUE);
}
//--------------------------------------------------------------------
public function down()
{
$config = new AauthConfig();
$this->forge->dropTable($config->dbTableGroups, true);
}
}

34
Database/Migrations/20181031064431_create_group_to_user.php

@ -0,0 +1,34 @@
<?php namespace Magefly\Aauth\Database\Migrations;
use CodeIgniter\Database\Migration;
use Magefly\Aauth\Config\Aauth as AauthConfig;
class Migration_create_group_to_user extends Migration
{
public function up()
{
$config = new AauthConfig();
$this->forge->addField([
'group_id' => array(
'type' => 'INT',
'constraint' => 11,
'unsigned' => TRUE,
),
'user_id' => array(
'type' => 'INT',
'constraint' => 11,
'unsigned' => TRUE,
),
]);
$this->forge->addKey(array('group_id','user_id'), TRUE);
$this->forge->createTable($config->dbTableGroupToUser, TRUE);
}
//--------------------------------------------------------------------
public function down()
{
$config = new AauthConfig();
$this->forge->dropTable($config->dbTableGroupToUser, true);
}
}

34
Database/Migrations/20181031064550_create_group_to_group.php

@ -0,0 +1,34 @@
<?php namespace Magefly\Aauth\Database\Migrations;
use CodeIgniter\Database\Migration;
use Magefly\Aauth\Config\Aauth as AauthConfig;
class Migration_create_group_to_group extends Migration
{
public function up()
{
$config = new AauthConfig();
$this->forge->addField([
'group_id' => array(
'type' => 'INT',
'constraint' => 11,
'unsigned' => TRUE,
),
'subgroup_id' => array(
'type' => 'INT',
'constraint' => 11,
'unsigned' => TRUE,
),
]);
$this->forge->addKey(array('group_id','subgroup_id'), TRUE);
$this->forge->createTable($config->dbTableGroupToGroup, TRUE);
}
//--------------------------------------------------------------------
public function down()
{
$config = new AauthConfig();
$this->forge->dropTable($config->dbTableGroupToGroup, true);
}
}

37
Database/Migrations/20181031064714_create_perms.php

@ -0,0 +1,37 @@
<?php namespace Magefly\Aauth\Database\Migrations;
use CodeIgniter\Database\Migration;
use Magefly\Aauth\Config\Aauth as AauthConfig;
class Migration_create_perms extends Migration
{
public function up()
{
$config = new AauthConfig();
$this->forge->addField([
'id' => array(
'type' => 'INT',
'constraint' => 11,
'unsigned' => TRUE,
'auto_increment' => TRUE,
),
'name' => array(
'type' => 'VARCHAR',
'constraint' => 100,
),
'definition' => array(
'type' => 'TEXT',
),
]);
$this->forge->addKey('id', TRUE);
$this->forge->createTable($config->dbTablePerms, TRUE);
}
//--------------------------------------------------------------------
public function down()
{
$config = new AauthConfig();
$this->forge->dropTable($config->dbTablePerms, true);
}
}

34
Database/Migrations/20181031065111_create_perm_to_user.php

@ -0,0 +1,34 @@
<?php namespace Magefly\Aauth\Database\Migrations;
use CodeIgniter\Database\Migration;
use Magefly\Aauth\Config\Aauth as AauthConfig;
class Migration_create_perm_to_user extends Migration
{
public function up()
{
$config = new AauthConfig();
$this->forge->addField([
'perm_id' => array(
'type' => 'INT',
'constraint' => 11,
'unsigned' => TRUE,
),
'user_id' => array(
'type' => 'INT',
'constraint' => 11,
'unsigned' => TRUE,
),
]);
$this->forge->addKey(array('perm_id','user_id'), TRUE);
$this->forge->createTable($config->dbTablePermToUser, TRUE);
}
//--------------------------------------------------------------------
public function down()
{
$config = new AauthConfig();
$this->forge->dropTable($config->dbTablePermToUser, true);
}
}

34
Database/Migrations/20181031065240_create_perm_to_group.php

@ -0,0 +1,34 @@
<?php namespace Magefly\Aauth\Database\Migrations;
use CodeIgniter\Database\Migration;
use Magefly\Aauth\Config\Aauth as AauthConfig;
class Migration_create_perm_to_group extends Migration
{
public function up()
{
$config = new AauthConfig();
$this->forge->addField([
'perm_id' => array(
'type' => 'INT',
'constraint' => 11,
'unsigned' => TRUE,
),
'group_id' => array(
'type' => 'INT',
'constraint' => 11,
'unsigned' => TRUE,
),
]);
$this->forge->addKey(array('perm_id','user_id'), TRUE);
$this->forge->createTable($config->dbTablePermToGroup, TRUE);
}
//--------------------------------------------------------------------
public function down()
{
$config = new AauthConfig();
$this->forge->dropTable($config->dbTablePermToGroup, true);
}
}

36
Database/Migrations/20181031072542_create_default_groups.php

@ -0,0 +1,36 @@
<?php namespace Magefly\Aauth\Database\Migrations;
use CodeIgniter\Database\Migration;
use Magefly\Aauth\Config\Aauth as AauthConfig;
class Migration_create_default_groups extends Migration
{
public function up()
{
$config = new AauthConfig();
$data = [
[
'name' => $config->adminGroup,
'definition' => 'Administators',
],
[
'name' => $config->defaultGroup,
'definition' => 'Users',
],
[
'name' => $config->publicGroup,
'definition' => 'Guests',
],
];
$this->db->table($config->dbTableGroups)->insertBatch($data);
}
//--------------------------------------------------------------------
public function down()
{
$this->db->table($config->dbTableGroups)->truncate();
}
}

41
Database/Migrations/20181031072914_create_default_admin.php

@ -0,0 +1,41 @@
<?php namespace Magefly\Aauth\Database\Migrations;
use CodeIgniter\Database\Migration;
use Magefly\Aauth\Config\Aauth as AauthConfig;
class Migration_create_default_admin extends Migration
{
public function up()
{
$config = new AauthConfig();
$data = [
'username' => 'admin',
'email' => 'admin@example.com',
'password' => password_hash('password123456', $config->passwordHashAlgo, $config->passwordHashOptions),
];
$this->db->table($config->dbTableUsers)->insert($data);
$data = [
[
'group_id' => 1,
'user_id' => 1,
],
[
'group_id' => 2,
'user_id' => 1,
],
];
$this->db->table($config->dbTableGroupToUser)->insertBatch($data);
}
//--------------------------------------------------------------------
public function down()
{
$this->db->table($config->dbTableUsers)->truncate();
$this->db->table($config->dbTableGroupToUser)->truncate();
}
}
Loading…
Cancel
Save