WIP Roles and permissions access control.

This commit is contained in:
Ahmed Bouhuolia
2019-09-11 21:40:09 +02:00
parent 9a8de9ca7d
commit cba17739d6
24 changed files with 847 additions and 20 deletions

View File

@@ -0,0 +1,11 @@
exports.up = function (knex) {
return knex.schema.createTable('permissions', (table) => {
table.increments();
table.string('name');
});
};
exports.down = function (knex) {
return knex.schema.dropTable('permissions');
};

View File

@@ -0,0 +1,11 @@
exports.up = function (knex) {
return knex.schema.createTable('resources', (table) => {
table.increments();
table.string('name');
});
};
exports.down = function (knex) {
return knex.schema.dropTable('resources');
};

View File

@@ -1,5 +1,5 @@
exports.up = function(knex) {
exports.up = function (knex) {
return knex.schema.createTable('users', (table) => {
table.increments();
table.string('first_name');
@@ -15,6 +15,6 @@ exports.up = function(knex) {
});
};
exports.down = function(knex) {
exports.down = function (knex) {
return knex.schema.dropTableIfExists('users');
};

View File

@@ -0,0 +1,12 @@
exports.up = function (knex) {
return knex.schema.createTable('user_has_roles', (table) => {
table.increments();
table.integer('user_id').unsigned().references('id').inTable('users');
table.integer('role_id').unsigned().references('id').inTable('roles');
});
};
exports.down = function (knex) {
return knex.schema.dropTableIfExists('user_has_roles');
};

View File

@@ -1,6 +1,6 @@
exports.up = function(knex) {
return knex.schema.createTable('oauth_tokens', table => {
return knex.schema.createTable('oauth_tokens', (table) => {
table.increments();
table.string('access_token');
table.date('access_token_expires_on');

View File

@@ -0,0 +1,10 @@
exports.up = function (knex) {
return knex.schema.createTable('role_has_accounts', (table) => {
table.increments();
table.integer('role_id').unsigned().references('id').inTable('roles');
table.integer('account_id').unsigned().references('id').inTable('accounts');
});
};
exports.down = (knex) => knex.schema.dropTableIfExists('role_has_accounts');

View File

@@ -0,0 +1,11 @@
exports.up = function (knex) {
return knex.schema.createTable('role_has_permissions', (table) => {
table.increments();
table.integer('role_id').unsigned().references('id').inTable('roles');
table.integer('permission_id').unsigned().references('id').inTable('permissions');
table.integer('resource_id').unsigned().references('id').inTable('resources');
});
};
exports.down = (knex) => knex.schema.dropTableIfExists('role_has_permissions');