summaryrefslogtreecommitdiffstats
path: root/server/migrations
diff options
context:
space:
mode:
authorChristian Hofmaier2018-08-05 01:42:49 +0200
committerChristian Hofmaier2018-08-05 01:42:49 +0200
commitd236e4c57a7f71589764efccd0cb36337d551055 (patch)
tree6d47dc6deface87f1985ce7daf26692e25838b16 /server/migrations
parent[store/global] simplified settings loading (diff)
downloadbas-d236e4c57a7f71589764efccd0cb36337d551055.tar.gz
bas-d236e4c57a7f71589764efccd0cb36337d551055.tar.xz
bas-d236e4c57a7f71589764efccd0cb36337d551055.zip
[permissions] add permission management
Add Roles Table with Delete Roles and Create Roles possibilities Add Users Table with Grant Roles and Revoke Roles possibilities
Diffstat (limited to 'server/migrations')
-rw-r--r--server/migrations/20180726033100-create-role.js22
-rw-r--r--server/migrations/20180726033400-create-user_x_role.js30
-rw-r--r--server/migrations/20180726171200-create-permission.js25
-rw-r--r--server/migrations/20180726173100-create-role_x_permission.js30
-rw-r--r--server/migrations/20180804234000-create-role_x_group.js30
5 files changed, 137 insertions, 0 deletions
diff --git a/server/migrations/20180726033100-create-role.js b/server/migrations/20180726033100-create-role.js
new file mode 100644
index 0000000..c930148
--- /dev/null
+++ b/server/migrations/20180726033100-create-role.js
@@ -0,0 +1,22 @@
+'use strict'
+module.exports = {
+ up: (queryInterface, Sequelize) => {
+ return queryInterface.createTable('roles', {
+ id: {
+ allowNull: false,
+ autoIncrement: true,
+ primaryKey: true,
+ type: Sequelize.INTEGER
+ },
+ name: {
+ type: Sequelize.STRING
+ },
+ descr: {
+ type: Sequelize.STRING
+ }
+ })
+ },
+ down: (queryInterface, Sequelize) => {
+ return queryInterface.dropTable('roles')
+ }
+}
diff --git a/server/migrations/20180726033400-create-user_x_role.js b/server/migrations/20180726033400-create-user_x_role.js
new file mode 100644
index 0000000..d82bc9a
--- /dev/null
+++ b/server/migrations/20180726033400-create-user_x_role.js
@@ -0,0 +1,30 @@
+'use strict'
+module.exports = {
+ up: (queryInterface, Sequelize) => {
+ return queryInterface.createTable('user_x_role', {
+ userId: {
+ primaryKey: true,
+ allowNull: false,
+ type: Sequelize.INTEGER,
+ onDelete: "cascade",
+ references: {
+ model: 'users',
+ key: 'id'
+ }
+ },
+ roleId: {
+ primaryKey: true,
+ allowNull: false,
+ type: Sequelize.INTEGER,
+ onDelete: "cascade",
+ references: {
+ model: 'roles',
+ key: 'id'
+ }
+ }
+ })
+ },
+ down: (queryInterface, Sequelize) => {
+ return queryInterface.dropTable('user_x_role')
+ }
+} \ No newline at end of file
diff --git a/server/migrations/20180726171200-create-permission.js b/server/migrations/20180726171200-create-permission.js
new file mode 100644
index 0000000..822e47c
--- /dev/null
+++ b/server/migrations/20180726171200-create-permission.js
@@ -0,0 +1,25 @@
+'use strict'
+module.exports = {
+ up: (queryInterface, Sequelize) => {
+ return queryInterface.createTable('permissions', {
+ id: {
+ allowNull: false,
+ autoIncrement: true,
+ primaryKey: true,
+ type: Sequelize.INTEGER
+ },
+ name: {
+ type: Sequelize.STRING
+ },
+ descr: {
+ type: Sequelize.STRING
+ },
+ groupdependent: {
+ type: Sequelize.BOOLEAN
+ }
+ })
+ },
+ down: (queryInterface, Sequelize) => {
+ return queryInterface.dropTable('permissions')
+ }
+}
diff --git a/server/migrations/20180726173100-create-role_x_permission.js b/server/migrations/20180726173100-create-role_x_permission.js
new file mode 100644
index 0000000..edfcb8e
--- /dev/null
+++ b/server/migrations/20180726173100-create-role_x_permission.js
@@ -0,0 +1,30 @@
+'use strict'
+module.exports = {
+ up: (queryInterface, Sequelize) => {
+ return queryInterface.createTable('role_x_permission', {
+ roleId: {
+ primaryKey: true,
+ allowNull: false,
+ type: Sequelize.INTEGER,
+ onDelete: "cascade",
+ references: {
+ model: 'roles',
+ key: 'id'
+ }
+ },
+ permissionId: {
+ primaryKey: true,
+ allowNull: false,
+ type: Sequelize.INTEGER,
+ onDelete: "cascade",
+ references: {
+ model: 'permissions',
+ key: 'id'
+ }
+ }
+ })
+ },
+ down: (queryInterface, Sequelize) => {
+ return queryInterface.dropTable('role_x_permission')
+ }
+} \ No newline at end of file
diff --git a/server/migrations/20180804234000-create-role_x_group.js b/server/migrations/20180804234000-create-role_x_group.js
new file mode 100644
index 0000000..d9024be
--- /dev/null
+++ b/server/migrations/20180804234000-create-role_x_group.js
@@ -0,0 +1,30 @@
+'use strict'
+module.exports = {
+ up: (queryInterface, Sequelize) => {
+ return queryInterface.createTable('role_x_group', {
+ roleId: {
+ primaryKey: true,
+ allowNull: false,
+ type: Sequelize.INTEGER,
+ onDelete: "cascade",
+ references: {
+ model: 'roles',
+ key: 'id'
+ }
+ },
+ groupId: {
+ primaryKey: true,
+ allowNull: false,
+ type: Sequelize.INTEGER,
+ onDelete: "cascade",
+ references: {
+ model: 'groups',
+ key: 'id'
+ }
+ }
+ })
+ },
+ down: (queryInterface, Sequelize) => {
+ return queryInterface.dropTable('role_x_group')
+ }
+} \ No newline at end of file