-
Notifications
You must be signed in to change notification settings - Fork 20
Expand file tree
/
Copy path004-create-permission-assignments.js
More file actions
27 lines (26 loc) · 1.11 KB
/
004-create-permission-assignments.js
File metadata and controls
27 lines (26 loc) · 1.11 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
'use strict';
module.exports = {
async up (qi, Sequelize) {
await qi.createTable('PermissionAssignments', {
id: { type: Sequelize.INTEGER, autoIncrement: true, primaryKey: true, allowNull: false },
roleId: {
type: Sequelize.INTEGER,
allowNull: false,
references: { model: 'Roles', key: 'id' },
onDelete: 'CASCADE'
},
resourceRn: { type: Sequelize.STRING, allowNull: false },
permission: { type: Sequelize.STRING, allowNull: false },
allow: { type: Sequelize.BOOLEAN, allowNull: false, defaultValue: true },
createdAt: { type: Sequelize.DATE, allowNull: false, defaultValue: Sequelize.fn('now') },
updatedAt: { type: Sequelize.DATE, allowNull: false, defaultValue: Sequelize.fn('now') }
});
await qi.addIndex('PermissionAssignments', ['roleId']);
await qi.addIndex('PermissionAssignments', ['resourceRn']);
await qi.addIndex('PermissionAssignments', ['permission']);
await qi.addIndex('PermissionAssignments', ['roleId', 'resourceRn', 'permission']);
},
async down (qi) {
await qi.dropTable('PermissionAssignments');
}
};