roles-permission-user-modules v0.0.9
//import file need follo this 1. env .env.local 2.migrations file A. 20230600000001-create-refresh-token.js const config = require('../src/config/vars'); /* @type {import('sequelize-cli').Migration} / module.exports = { async up(queryInterface, Sequelize) { await queryInterface.createTable( 'refreshToken', { id: { allowNull: false, autoIncrement: true, primaryKey: true, type: Sequelize.INTEGER, }, userId: { allowNull: false, type: Sequelize.INTEGER, }, token: { allowNull: false, type: Sequelize.STRING, }, createdAt: { allowNull: false, type: Sequelize.DATE, defaultValue: new Date(), }, updatedAt: { allowNull: false, type: Sequelize.DATE, defaultValue: new Date(), }, }, { schema: config.db.schema, }, { freezeTableName: true, } ); }, async down(queryInterface) { await queryInterface.dropTable('refreshToken'); }, }; B. 20230600000002-create-users.js
const config = require('../src/config/vars');
/* @type {import('sequelize-cli').Migration} /
module.exports = { async up(queryInterface, Sequelize) { await queryInterface.createTable( 'users', { id: { allowNull: false, autoIncrement: true, primaryKey: true, type: Sequelize.INTEGER, }, userName: { type: Sequelize.STRING, }, password: { type: Sequelize.STRING, }, email: { type: Sequelize.STRING, }, mobile: { type: Sequelize.STRING, validate: { is: /^\d{10}$/, }, }, firstName: { type: Sequelize.STRING, }, lastName: { type: Sequelize.STRING, }, fatherName: { type: Sequelize.STRING, }, dob: { type: Sequelize.DATEONLY, }, gender: { type: Sequelize.ENUM('Male', 'Female', 'Prefer not to say'), }, street1: { type: Sequelize.STRING, }, street2: { type: Sequelize.STRING, }, pincode: { type: Sequelize.STRING, }, country: { type: Sequelize.STRING, }, state: { type: Sequelize.STRING, }, city: { type: Sequelize.STRING, }, isAdmin: { type: Sequelize.BOOLEAN, }, userStatus: { type: Sequelize.STRING, }, isTrash: { type: Sequelize.BOOLEAN, }, inviteDate: { type: Sequelize.DATE, }, resendLinkCount: { type: Sequelize.INTEGER, }, isResetByMail: { type: Sequelize.BOOLEAN, }, resetMailTime: { type: Sequelize.DATE, }, privacyURL: { type: Sequelize.STRING, }, imageName: { type: Sequelize.STRING, }, created_by: { type: Sequelize.INTEGER, references: { model: 'users', key: 'id', }, onDelete: 'CASCADE', }, updated_by: { type: Sequelize.INTEGER, references: { model: 'users', key: 'id', }, onDelete: 'CASCADE', }, createdAt: { allowNull: false, type: Sequelize.DATE, defaultValue: new Date(), }, updatedAt: { allowNull: false, type: Sequelize.DATE, defaultValue: new Date(), }, }, { schema: config.db.schema, freezeTableName: true, } ); }, async down(queryInterface) { await queryInterface.dropTable('users'); }, };
C. 20230600000003-create-modules.js
const config = require('../src/config/vars'); /* @type {import('sequelize-cli').Migration} / module.exports = { async up(queryInterface, Sequelize) { await queryInterface.createTable( 'modules', { id: { allowNull: false, autoIncrement: true, primaryKey: true, type: Sequelize.INTEGER, }, name: { type: Sequelize.STRING, }, key: { type: Sequelize.STRING, }, created_by: { type: Sequelize.INTEGER, references: { model: 'users', key: 'id', }, onDelete: 'CASCADE', }, updated_by: { type: Sequelize.INTEGER, references: { model: 'users', key: 'id', }, onDelete: 'CASCADE', }, isActive: { allowNull: false, type: Sequelize.BOOLEAN, }, orderId: { allowNull: false, type: Sequelize.INTEGER, }, isCard: { allowNull: false, type: Sequelize.BOOLEAN, }, cardColor: { allowNull: false, type: Sequelize.STRING, }, cardBg: { allowNull: false, type: Sequelize.STRING, }, redirectURL: { allowNull: false, type: Sequelize.STRING, }, createdAt: { allowNull: false, type: Sequelize.DATE, defaultValue: new Date(), }, updatedAt: { allowNull: false, type: Sequelize.DATE, defaultValue: new Date(), }, }, { schema: config.db.schema, }, { freezeTableName: true, } ); }, async down(queryInterface) { await queryInterface.dropTable('modules'); }, };
D. 20230600000004-create-features.js
const config = require('../src/config/vars'); /* @type {import('sequelize-cli').Migration} / module.exports = { async up(queryInterface, Sequelize) { await queryInterface.createTable( 'features', { id: { allowNull: false, autoIncrement: true, primaryKey: true, type: Sequelize.INTEGER, }, name: { type: Sequelize.STRING, }, key: { type: Sequelize.STRING, }, group_id: { type: Sequelize.INTEGER, }, isProtected: { type: Sequelize.BOOLEAN, }, orderId: { type: Sequelize.INTEGER, }, created_by: { type: Sequelize.INTEGER, references: { model: 'users', key: 'id', }, onDelete: 'CASCADE', }, updated_by: { type: Sequelize.INTEGER, references: { model: 'users', key: 'id', }, onDelete: 'CASCADE', }, isActive: { type: Sequelize.BOOLEAN, }, createdAt: { allowNull: false, type: Sequelize.DATE, defaultValue: new Date(), }, updatedAt: { allowNull: false, type: Sequelize.DATE, defaultValue: new Date(), }, }, { schema: config.db.schema, }, { freezeTableName: true, } ); }, async down(queryInterface) { await queryInterface.dropTable('features'); }, };
E. 20230600000005-create-module-features.js
const config = require('../src/config/vars'); /* @type {import('sequelize-cli').Migration} / module.exports = { async up(queryInterface, Sequelize) { await queryInterface.createTable( 'moduleFeatures', { id: { allowNull: false, autoIncrement: true, primaryKey: true, type: Sequelize.INTEGER, }, module_id: { type: Sequelize.INTEGER, references: { model: 'modules', key: 'id', }, onDelete: 'CASCADE', }, feature_id: { type: Sequelize.INTEGER, references: { model: 'features', key: 'id', }, onDelete: 'CASCADE', }, createdAt: { allowNull: false, type: Sequelize.DATE, defaultValue: new Date(), }, updatedAt: { allowNull: false, type: Sequelize.DATE, defaultValue: new Date(), }, }, { schema: config.db.schema, }, { freezeTableName: true, } ); }, async down(queryInterface) { await queryInterface.dropTable('moduleFeatures'); }, };
F. 20230600000006-create-roles.js
const config = require('../src/config/vars'); /* @type {import('sequelize-cli').Migration} / module.exports = { async up(queryInterface, Sequelize) { await queryInterface.createTable( 'roles', { id: { allowNull: false, autoIncrement: true, primaryKey: true, type: Sequelize.INTEGER, }, name: { type: Sequelize.STRING, }, key: { type: Sequelize.STRING, }, created_by: { type: Sequelize.INTEGER, references: { model: 'users', key: 'id', }, onDelete: 'CASCADE', }, updated_by: { type: Sequelize.INTEGER, references: { model: 'users', key: 'id', }, onDelete: 'CASCADE', }, module_id: { type: Sequelize.INTEGER, references: { model: 'modules', key: 'id', }, onDelete: 'CASCADE', }, isActive: { type: Sequelize.BOOLEAN, }, createdAt: { allowNull: false, type: Sequelize.DATE, defaultValue: new Date(), }, updatedAt: { allowNull: false, type: Sequelize.DATE, defaultValue: new Date(), }, }, { schema: config.db.schema, }, { freezeTableName: true, } ); }, async down(queryInterface) { await queryInterface.dropTable('roles'); }, };
G. 20230600000007-create-role-features.js
const config = require('../src/config/vars'); /* @type {import('sequelize-cli').Migration} / module.exports = { async up(queryInterface, Sequelize) { await queryInterface.createTable( 'roleFeatures', { id: { allowNull: false, autoIncrement: true, primaryKey: true, type: Sequelize.INTEGER, }, role_id: { type: Sequelize.INTEGER, references: { model: 'roles', key: 'id', }, onDelete: 'CASCADE', }, feature_id: { type: Sequelize.INTEGER, references: { model: 'features', key: 'id', }, onDelete: 'CASCADE', }, createdAt: { allowNull: false, type: Sequelize.DATE, defaultValue: new Date(), }, updatedAt: { allowNull: false, type: Sequelize.DATE, defaultValue: new Date(), }, }, { schema: config.db.schema, }, { freezeTableName: true, } ); }, async down(queryInterface) { await queryInterface.dropTable('roleFeatures'); }, };
H. 20230600000008-create-user-module-roles.js
const config = require('../src/config/vars'); /* @type {import('sequelize-cli').Migration} / module.exports = { async up(queryInterface, Sequelize) { await queryInterface.createTable( 'userModuleRoles', { id: { allowNull: false, autoIncrement: true, primaryKey: true, type: Sequelize.INTEGER, }, user_id: { type: Sequelize.INTEGER, references: { model: 'users', key: 'id', }, onDelete: 'CASCADE', }, module_id: { type: Sequelize.INTEGER, references: { model: 'modules', key: 'id', }, onDelete: 'CASCADE', }, role_id: { type: Sequelize.INTEGER, references: { model: 'roles', key: 'id', }, onDelete: 'CASCADE', }, created_by: { type: Sequelize.INTEGER, references: { model: 'users', key: 'id', }, onDelete: 'CASCADE', }, updated_by: { type: Sequelize.INTEGER, references: { model: 'users', key: 'id', }, onDelete: 'CASCADE', }, createdAt: { allowNull: false, type: Sequelize.DATE, defaultValue: new Date(), }, updatedAt: { allowNull: false, type: Sequelize.DATE, defaultValue: new Date(), }, }, { schema: config.db.schema, }, { freezeTableName: true, } ); }, async down(queryInterface) { await queryInterface.dropTable('userModuleRoles'); }, };
// 3. models File A. features.js const { Model } = require('sequelize'); const config = require('../src/config/vars');
module.exports = (sequelize, DataTypes) => {
class features extends Model {}
features.init(
{
name: DataTypes.STRING,
key: DataTypes.STRING,
group_id: DataTypes.INTEGER,
isProtected: DataTypes.BOOLEAN,
orderId: DataTypes.INTEGER,
created_by: DataTypes.INTEGER,
updated_by: DataTypes.INTEGER,
isActive: DataTypes.BOOLEAN,
},
{
sequelize,
modelName: 'features',
schema: config.db.schema,
freezeTableName: true,
}
);
features.associate = function (models) {
features.belongsToMany(models.roles, {
through: 'roleFeatures',
as: 'roles',
foreignKey: 'feature_id',
});
features.belongsToMany(models.modules, {
through: 'moduleFeatures',
as: 'modules',
foreignKey: 'feature_id',
});
features.belongsTo(models.users, { foreignKey: 'created_by', as: 'createUser' });
features.belongsTo(models.users, { foreignKey: 'updated_by', as: 'updateUser' });
// features.belongsTo(models.group, { foreignKey: 'group_id', as: 'group' });
};
return features;
};
B. index.js
/* eslint-disable global-require */
/* eslint-disable import/no-dynamic-require */
/* eslint-disable security/detect-non-literal-require */
const fs = require('fs');
const path = require('path');
const Sequelize = require('sequelize');
const basename = path.basename(__filename);
const config = require(`../src/config/vars.js`).db;
const { db } = require('../src/config/vars');
const sequelize = new Sequelize(config.database, config.username, config.password, {
host: config.host,
dialect: config.dialect,
schema: config.schema,
logging: false,
});
fs.readdirSync(__dirname)
.filter((file) => {
return file.indexOf('.') !== 0 && file !== basename && file.slice(-3) === '.js';
})
.forEach((file) => {
const model = require(path.join(__dirname, file))(sequelize, Sequelize.DataTypes);
db[model.name] = model;
});
Object.keys(db).forEach((modelName) => {
if (db[modelName].associate) {
db[modelName].associate(db);
}
});
db.sequelize = sequelize;
db.Sequelize = Sequelize;
module.exports = db;
C. modulefeatures.js
const { Model } = require('sequelize');
const config = require('../src/config/vars');
module.exports = (sequelize, DataTypes) => {
class moduleFeatures extends Model {}
moduleFeatures.init(
{
module_id: DataTypes.INTEGER,
feature_id: DataTypes.INTEGER,
},
{
sequelize,
modelName: 'moduleFeatures',
schema: config.db.schema,
freezeTableName: true,
}
);
moduleFeatures.associate = function (models) {
moduleFeatures.belongsTo(models.modules, { foreignKey: 'module_id', as: 'modules' });
moduleFeatures.belongsTo(models.features, { foreignKey: 'feature_id', as: 'features' });
};
return moduleFeatures;
};
D.Modules.js
const { Model } = require('sequelize');
const config = require('../src/config/vars');
module.exports = (sequelize, DataTypes) => {
class modules extends Model {}
modules.init(
{
name: DataTypes.STRING,
key: DataTypes.STRING,
created_by: DataTypes.INTEGER,
updated_by: DataTypes.INTEGER,
isActive: DataTypes.BOOLEAN,
orderId: DataTypes.INTEGER,
isCard: DataTypes.BOOLEAN,
cardColor: DataTypes.STRING,
cardBg: DataTypes.STRING,
redirectURL: DataTypes.STRING,
},
{
sequelize,
modelName: 'modules',
schema: config.db.schema,
freezeTableName: true,
}
);
modules.associate = function (models) {
modules.belongsToMany(models.features, {
through: 'moduleFeatures',
as: 'features',
foreignKey: 'module_id',
});
modules.hasMany(models.userModuleRoles, { foreignKey: 'module_id', as: 'userModuleRoles' });
modules.belongsTo(models.users, { foreignKey: 'created_by', as: 'createUser' });
modules.belongsTo(models.users, { foreignKey: 'updated_by', as: 'updateUser' });
modules.hasMany(models.roles, { foreignKey: 'module_id', as: 'roles' });
// modules.hasMany(models.jobs, { foreignKey: 'department_id', as: 'departmentJob' });
};
return modules;
};
E.refreshtoken.js
const { Model } = require('sequelize');
const config = require('../src/config/vars');
module.exports = (sequelize, DataTypes) => {
class refreshToken extends Model {}
refreshToken.init(
{
userId: DataTypes.INTEGER,
token: DataTypes.STRING,
},
{
sequelize,
modelName: 'refreshToken',
schema: config.db.schema,
freezeTableName: true,
}
);
return refreshToken;
};
F. rolefeatures.js
const { Model } = require('sequelize');
const config = require('../src/config/vars');
module.exports = (sequelize, DataTypes) => {
class roleFeatures extends Model {}
roleFeatures.init(
{
role_id: DataTypes.INTEGER,
feature_id: DataTypes.INTEGER,
},
{
sequelize,
modelName: 'roleFeatures',
schema: config.db.schema,
freezeTableName: true,
}
);
roleFeatures.associate = function (models) {
roleFeatures.belongsTo(models.features, { foreignKey: 'feature_id', as: 'features' });
roleFeatures.belongsTo(models.roles, { foreignKey: 'role_id', as: 'roles' });
};
return roleFeatures;
};
G. roles
const { Model } = require('sequelize');
const config = require('../src/config/vars');
module.exports = (sequelize, DataTypes) => {
class roles extends Model {}
roles.init(
{
name: DataTypes.STRING,
key: DataTypes.STRING,
created_by: DataTypes.INTEGER,
updated_by: DataTypes.INTEGER,
module_id: DataTypes.INTEGER,
isActive: DataTypes.BOOLEAN,
},
{
sequelize,
modelName: 'roles',
schema: config.db.schema,
freezeTableName: true,
}
);
roles.associate = function (models) {
roles.belongsToMany(models.features, {
through: 'roleFeatures',
as: 'features',
foreignKey: 'role_id',
});
roles.hasMany(models.userModuleRoles, { foreignKey: 'role_id', as: 'userModuleRoles' });
roles.belongsTo(models.users, { foreignKey: 'created_by', as: 'userCreate' });
roles.belongsTo(models.users, { foreignKey: 'updated_by', as: 'userUpdate' });
roles.belongsTo(models.modules, { foreignKey: 'module_id', as: 'modules' });
};
return roles;
};
H.userauthoraccess.js
const { Model } = require('sequelize');
const config = require('../src/config/vars');
module.exports = (sequelize, DataTypes) => {
class userAuthorAccess extends Model {}
userAuthorAccess.init(
{
user_id: DataTypes.INTEGER,
user_accessId: DataTypes.INTEGER,
},
{
sequelize,
modelName: 'userAuthorAccess',
schema: config.db.schema,
freezeTableName: true,
}
);
userAuthorAccess.associate = function (models) {
userAuthorAccess.belongsTo(models.users, { foreignKey: 'user_id', as: 'user' });
// userAuthorAccess.belongsTo(models.authorAccess, { foreignKey: 'user_accessId', as: 'author' });
};
return userAuthorAccess;
};
I. usermoduleroles.js
const { Model } = require('sequelize');
const config = require('../src/config/vars');
module.exports = (sequelize, DataTypes) => {
class userModuleRoles extends Model {}
userModuleRoles.init(
{
user_id: DataTypes.INTEGER,
module_id: DataTypes.INTEGER,
role_id: DataTypes.INTEGER,
created_by: DataTypes.INTEGER,
updated_by: DataTypes.INTEGER,
},
{
sequelize,
modelName: 'userModuleRoles',
schema: config.db.schema,
freezeTableName: true,
}
);
userModuleRoles.associate = function (models) {
userModuleRoles.belongsTo(models.modules, { foreignKey: 'module_id', as: 'module' });
userModuleRoles.belongsTo(models.roles, { foreignKey: 'role_id', as: 'role' });
userModuleRoles.belongsTo(models.users, { foreignKey: 'user_id', as: 'user' });
userModuleRoles.belongsTo(models.users, { foreignKey: 'created_by', as: 'createUser' });
userModuleRoles.belongsTo(models.users, { foreignKey: 'updated_by', as: 'updateUser' });
};
return userModuleRoles;
};
J. users.js
const { Model } = require('sequelize');
const config = require('../src/config/vars');
module.exports = (sequelize, DataTypes) => {
class users extends Model {}
users.init(
{
userName: DataTypes.STRING,
password: DataTypes.STRING,
email: DataTypes.STRING,
mobile: DataTypes.STRING,
firstName: DataTypes.STRING,
lastName: DataTypes.STRING,
fatherName: DataTypes.STRING,
dob: DataTypes.DATEONLY,
gender: DataTypes.ENUM('Male', 'Female', 'Prefer not to say'),
street1: DataTypes.STRING,
street2: DataTypes.STRING,
pincode: DataTypes.STRING,
country: DataTypes.STRING,
state: DataTypes.STRING,
city: DataTypes.STRING,
isAdmin: DataTypes.BOOLEAN,
userStatus: DataTypes.STRING,
isTrash: DataTypes.BOOLEAN,
inviteDate: DataTypes.DATE,
resendLinkCount: DataTypes.INTEGER,
isResetByMail: DataTypes.BOOLEAN,
resetMailTime: DataTypes.DATE,
privacyURL: DataTypes.STRING,
imageName: DataTypes.STRING,
created_by: DataTypes.INTEGER,
updated_by: DataTypes.INTEGER,
// bio: DataTypes.STRING,
// authorStatus: DataTypes.STRING,
// executiveId: DataTypes.INTEGER,
},
{
sequelize,
modelName: 'users',
schema: config.db.schema,
freezeTableName: true,
}
);
users.associate = function (models) {
users.hasMany(models.userModuleRoles, { foreignKey: 'user_id', as: 'user' });
users.hasMany(models.userModuleRoles, { foreignKey: 'created_by', as: 'userCreate' });
users.hasMany(models.userModuleRoles, { foreignKey: 'updated_by', as: 'userUpdate' });
users.hasMany(models.features, { foreignKey: 'created_by', as: 'featureCreate' });
users.hasMany(models.features, { foreignKey: 'updated_by', as: 'featureUpdate' });
users.hasMany(models.modules, { foreignKey: 'created_by', as: 'moduleCreate' });
users.hasMany(models.modules, { foreignKey: 'updated_by', as: 'moduleUpdate' });
users.hasMany(models.roles, { foreignKey: 'created_by', as: 'roleCreate' });
users.hasMany(models.roles, { foreignKey: 'updated_by', as: 'roleUpdate' });
users.belongsTo(models.users, { foreignKey: 'created_by', as: 'createBy' });
users.belongsTo(models.users, { foreignKey: 'updated_by', as: 'updateBy' });
};
return users;
};
- seeders file
A.20231016055331-users.js
const jwt = require('jsonwebtoken');
const { Sequelize } = require('sequelize');
const config = require('../src/config/vars');
/** @type {import('sequelize-cli').Migration} */
const encryptedPassword = jwt.sign(
{
password: 'Demo@123',
},
config.app.accesstoken
);
module.exports = {
async up(queryInterface) {
return queryInterface.bulkInsert(
{ tableName: 'users', schema: config.db.schema },
[
{
userName: 'Sheshiadmin',
email: 'mahakaal@admin.ai',
password: encryptedPassword,
mobile: '9855433254',
firstName: 'Fernandus',
lastName: 'Ferro',
gender: 'Male',
pincode: '560041',
country: 'India',
state: 'Karnataka',
city: 'Bangalore South',
isResetByMail: false,
isAdmin: true,
userStatus: 'Active',
isTrash: false,
createdAt: Sequelize.literal('NOW()'),
updatedAt: Sequelize.literal('NOW()'),
},
{
userName: 'Jothi2810',
email: 'jothi@admin.ai',
password: encryptedPassword,
mobile: '9855433200',
firstName: 'Jothi',
lastName: 'Krishana',
gender: 'Male',
pincode: '560041',
country: 'India',
state: 'Karnataka',
city: 'Bangalore South',
isResetByMail: false,
isAdmin: false,
userStatus: 'Active',
isTrash: false,
createdAt: Sequelize.literal('NOW()'),
updatedAt: Sequelize.literal('NOW()'),
},
],
{}
);
},
async down(queryInterface) {
return queryInterface.bulkDelete({ tableName: 'users', schema: config.db.schema }, null, {});
},
};
B.20231016055332-modules.js
const config = require('../src/config/vars');
/** @type {import('sequelize-cli').Migration} */
module.exports = {
async up(queryInterface) {
return queryInterface.bulkInsert(
{ tableName: 'modules', schema: config.db.schema },
[
{
name: 'Sales',
key: 'sales',
created_by: 1,
updated_by: 1,
isActive: true,
orderId: 1,
isCard: true,
cardColor: '',
cardBg: '',
redirectURL: '',
},
{
name: 'Marketing',
key: 'marketing',
created_by: 1,
updated_by: 1,
isActive: true,
orderId: 2,
isCard: true,
cardColor: '',
cardBg: '',
redirectURL: '',
},
{
name: 'Product',
key: 'product',
created_by: 1,
updated_by: 1,
isActive: true,
orderId: 3,
isCard: true,
cardColor: '',
cardBg: '',
redirectURL: '',
},
{
name: 'Design',
key: 'design',
created_by: 1,
updated_by: 1,
isActive: true,
orderId: 4,
isCard: true,
cardColor: '',
cardBg: '',
redirectURL: '',
},
{
name: 'Customer Success',
key: 'customerSuccess',
created_by: 1,
updated_by: 1,
isActive: true,
orderId: 5,
isCard: true,
cardColor: '',
cardBg: '',
redirectURL: '',
},
{
name: 'Development',
key: 'development',
created_by: 1,
updated_by: 1,
isActive: true,
orderId: 6,
isCard: true,
cardColor: '',
cardBg: '',
redirectURL: '',
},
{
name: 'Web Content',
key: 'webContent',
created_by: 1,
updated_by: 1,
isActive: true,
orderId: 7,
isCard: true,
cardColor: '',
cardBg: '',
redirectURL: '',
},
{
name: 'Human Resources',
key: 'humanResources',
created_by: 1,
updated_by: 1,
isActive: true,
orderId: 8,
isCard: true,
cardColor: '',
cardBg: '',
redirectURL: '',
},
],
{}
);
},
async down(queryInterface) {
return queryInterface.bulkDelete({ tableName: 'modules', schema: config.db.schema }, null, {});
},
};
C.20231016055333-features.js
const { Sequelize } = require('sequelize');
const config = require('../src/config/vars');
/** @type {import('sequelize-cli').Migration} */
module.exports = {
async up(queryInterface) {
return queryInterface.bulkInsert(
{ tableName: 'features', schema: config.db.schema },
[
{
name: 'Add Users',
key: 'addUsers',
isActive: true,
group_id: 1,
isProtected: true,
orderId: 1,
created_by: 1,
updated_by: 1,
createdAt: Sequelize.literal('NOW()'),
updatedAt: Sequelize.literal('NOW()'),
},
{
name: 'Add/Edit Roles',
key: 'addeditRoles',
isActive: true,
group_id: 1,
isProtected: true,
orderId: 2,
created_by: 1,
updated_by: 1,
createdAt: Sequelize.literal('NOW()'),
updatedAt: Sequelize.literal('NOW()'),
},
{
name: 'Add Organization',
key: 'addOrganization',
isActive: true,
group_id: 2,
isProtected: false,
orderId: 3,
created_by: 1,
updated_by: 1,
createdAt: Sequelize.literal('NOW()'),
updatedAt: Sequelize.literal('NOW()'),
},
{
name: 'Extend Plan',
key: 'extendPlan',
isActive: true,
group_id: 2,
isProtected: false,
orderId: 4,
created_by: 1,
updated_by: 1,
createdAt: Sequelize.literal('NOW()'),
updatedAt: Sequelize.literal('NOW()'),
},
{
name: 'Upgrade Plan',
key: 'upgradePlan',
isActive: true,
group_id: 2,
isProtected: false,
orderId: 5,
created_by: 1,
updated_by: 1,
createdAt: Sequelize.literal('NOW()'),
updatedAt: Sequelize.literal('NOW()'),
},
{
name: 'Block Organization',
key: 'blockOrganization',
isActive: true,
group_id: 2,
isProtected: false,
orderId: 6,
created_by: 1,
updated_by: 1,
createdAt: Sequelize.literal('NOW()'),
updatedAt: Sequelize.literal('NOW()'),
},
{
name: 'Unblock Organization',
key: 'unblockOrganization',
isActive: true,
group_id: 2,
isProtected: false,
orderId: 7,
created_by: 1,
updated_by: 1,
createdAt: Sequelize.literal('NOW()'),
updatedAt: Sequelize.literal('NOW()'),
},
{
name: 'Reset Password',
key: 'resetPassword',
isActive: true,
group_id: 2,
isProtected: false,
orderId: 8,
created_by: 1,
updated_by: 1,
createdAt: Sequelize.literal('NOW()'),
updatedAt: Sequelize.literal('NOW()'),
},
{
name: 'Add Plans',
key: 'addPlans',
isActive: true,
group_id: 3,
isProtected: false,
orderId: 9,
created_by: 1,
updated_by: 1,
createdAt: Sequelize.literal('NOW()'),
updatedAt: Sequelize.literal('NOW()'),
},
{
name: 'Activate / Deactivate Plan',
key: 'activateDeactivatePlan',
isActive: true,
group_id: 3,
isProtected: false,
orderId: 10,
created_by: 1,
updated_by: 1,
createdAt: Sequelize.literal('NOW()'),
updatedAt: Sequelize.literal('NOW()'),
},
{
name: 'Plan Search',
key: 'planSearch',
isActive: true,
group_id: 3,
isProtected: false,
orderId: 11,
created_by: 1,
updated_by: 1,
createdAt: Sequelize.literal('NOW()'),
updatedAt: Sequelize.literal('NOW()'),
},
{
name: 'Plan Downloads',
key: 'planDownloads',
isActive: true,
group_id: 3,
isProtected: false,
orderId: 12,
created_by: 1,
updated_by: 1,
createdAt: Sequelize.literal('NOW()'),
updatedAt: Sequelize.literal('NOW()'),
},
{
name: 'Organization Search',
key: 'organizationSearch',
isActive: true,
group_id: 2,
isProtected: false,
orderId: 13,
created_by: 1,
updated_by: 1,
createdAt: Sequelize.literal('NOW()'),
updatedAt: Sequelize.literal('NOW()'),
},
{
name: 'Organization Downloads',
key: 'organizationDownloads',
isActive: true,
group_id: 2,
isProtected: false,
orderId: 14,
created_by: 1,
updated_by: 1,
createdAt: Sequelize.literal('NOW()'),
updatedAt: Sequelize.literal('NOW()'),
},
{
name: 'Others',
key: 'others',
isActive: true,
group_id: 1,
isProtected: false,
orderId: 15,
created_by: 1,
updated_by: 1,
createdAt: Sequelize.literal('NOW()'),
updatedAt: Sequelize.literal('NOW()'),
},
{
name: 'Delete Role',
key: 'deleteRole',
isActive: true,
group_id: 1,
isProtected: true,
orderId: 2,
created_by: 1,
updated_by: 1,
createdAt: Sequelize.literal('NOW()'),
updatedAt: Sequelize.literal('NOW()'),
},
{
name: 'Edit Users',
key: 'editUsers',
isActive: true,
group_id: 1,
isProtected: true,
orderId: 2,
created_by: 1,
updated_by: 1,
createdAt: Sequelize.literal('NOW()'),
updatedAt: Sequelize.literal('NOW()'),
},
{
name: 'Delete Users',
key: 'deleteUsers',
isActive: true,
group_id: 1,
isProtected: true,
orderId: 2,
created_by: 1,
updated_by: 1,
createdAt: Sequelize.literal('NOW()'),
updatedAt: Sequelize.literal('NOW()'),
},
{
name: 'Permanent Delete',
key: 'permanentDelete',
isActive: true,
group_id: 4,
isProtected: false,
orderId: 16,
created_by: 1,
updated_by: 1,
createdAt: Sequelize.literal('NOW()'),
updatedAt: Sequelize.literal('NOW()'),
},
{
name: 'View Author',
key: 'viewAuthor',
isActive: true,
group_id: 4,
isProtected: false,
orderId: 17,
created_by: 1,
updated_by: 1,
createdAt: Sequelize.literal('NOW()'),
updatedAt: Sequelize.literal('NOW()'),
},
{
name: 'Add Author',
key: 'addAuthor',
isActive: true,
group_id: 4,
isProtected: false,
orderId: 18,
created_by: 1,
updated_by: 1,
createdAt: Sequelize.literal('NOW()'),
updatedAt: Sequelize.literal('NOW()'),
},
{
name: 'Edit Author Self',
key: 'editAuthorSelf',
isActive: true,
group_id: 4,
isProtected: false,
orderId: 19,
created_by: 1,
updated_by: 1,
createdAt: Sequelize.literal('NOW()'),
updatedAt: Sequelize.literal('NOW()'),
},
{
name: 'Add Category',
key: 'addCategory',
isActive: true,
group_id: 4,
isProtected: false,
orderId: 20,
created_by: 1,
updated_by: 1,
createdAt: Sequelize.literal('NOW()'),
updatedAt: Sequelize.literal('NOW()'),
},
{
name: 'Edit Category',
key: 'editCategory',
isActive: true,
group_id: 4,
isProtected: false,
orderId: 21,
created_by: 1,
updated_by: 1,
createdAt: Sequelize.literal('NOW()'),
updatedAt: Sequelize.literal('NOW()'),
},
{
name: 'Draft Publish',
key: 'draftPublish',
isActive: true,
group_id: 4,
isProtected: false,
orderId: 22,
created_by: 1,
updated_by: 1,
createdAt: Sequelize.literal('NOW()'),
updatedAt: Sequelize.literal('NOW()'),
},
{
name: 'Publish Draft',
key: 'publishDraft',
isActive: true,
group_id: 4,
isProtected: false,
orderId: 23,
created_by: 1,
updated_by: 1,
createdAt: Sequelize.literal('NOW()'),
updatedAt: Sequelize.literal('NOW()'),
},
{
name: 'Delete Draft',
key: 'deleteDraft',
isActive: true,
group_id: 4,
isProtected: false,
orderId: 24,
created_by: 1,
updated_by: 1,
createdAt: Sequelize.literal('NOW()'),
updatedAt: Sequelize.literal('NOW()'),
},
{
name: 'Edit Draft Any',
key: 'editDraftAny',
isActive: true,
group_id: 4,
isProtected: false,
orderId: 25,
created_by: 1,
updated_by: 1,
createdAt: Sequelize.literal('NOW()'),
updatedAt: Sequelize.literal('NOW()'),
},
{
name: 'Add Draft',
key: 'addDraft',
isActive: true,
group_id: 4,
isProtected: false,
orderId: 26,
created_by: 1,
updated_by: 1,
createdAt: Sequelize.literal('NOW()'),
updatedAt: Sequelize.literal('NOW()'),
},
{
name: 'View Published',
key: 'viewPublished',
isActive: true,
group_id: 4,
isProtected: false,
orderId: 27,
created_by: 1,
updated_by: 1,
createdAt: Sequelize.literal('NOW()'),
updatedAt: Sequelize.literal('NOW()'),
},
{
name: 'Draft Deleted Any',
key: 'draftDeletedAny',
isActive: true,
group_id: 4,
isProtected: false,
orderId: 28,
created_by: 1,
updated_by: 1,
createdAt: Sequelize.literal('NOW()'),
updatedAt: Sequelize.literal('NOW()'),
},
{
name: 'Draft Deleted Self',
key: 'draftDeletedSelf',
isActive: true,
group_id: 4,
isProtected: false,
orderId: 29,
created_by: 1,
updated_by: 1,
createdAt: Sequelize.literal('NOW()'),
updatedAt: Sequelize.literal('NOW()'),
},
{
name: 'Edit Draft Self',
key: 'editDraftSelf',
isActive: true,
group_id: 4,
isProtected: false,
orderId: 30,
created_by: 1,
updated_by: 1,
createdAt: Sequelize.literal('NOW()'),
updatedAt: Sequelize.literal('NOW()'),
},
{
name: 'Author Status Update',
key: 'authorStatusUpdate',
isActive: true,
group_id: 4,
isProtected: false,
orderId: 31,
created_by: 1,
updated_by: 1,
createdAt: Sequelize.literal('NOW()'),
updatedAt: Sequelize.literal('NOW()'),
},
{
name: 'Edit Author Any',
key: 'editAuthorAny',
isActive: true,
group_id: 4,
isProtected: false,
orderId: 32,
created_by: 1,
updated_by: 1,
createdAt: Sequelize.literal('NOW()'),
updatedAt: Sequelize.literal('NOW()'),
},
{
name: 'Add Rating Feature',
key: 'addRatingFeature',
isActive: true,
group_id: 4,
isProtected: false,
orderId: 33,
created_by: 1,
updated_by: 1,
createdAt: Sequelize.literal('NOW()'),
updatedAt: Sequelize.literal('NOW()'),
},
{
name: 'Delete Category',
key: 'deleteCategory',
isActive: true,
group_id: 4,
isProtected: false,
orderId: 34,
created_by: 1,
updated_by: 1,
createdAt: Sequelize.literal('NOW()'),
updatedAt: Sequelize.literal('NOW()'),
},
{
name: 'Add Applicant',
key: 'addApplicant',
isActive: true,
group_id: 6,
isProtected: false,
orderId: 35,
created_by: 1,
updated_by: 1,
createdAt: Sequelize.literal('NOW()'),
updatedAt: Sequelize.literal('NOW()'),
},
{
name: 'Change Applicant Status',
key: 'changeApplicantStatus',
isActive: true,
group_id: 6,
isProtected: false,
orderId: 36,
created_by: 1,
updated_by: 1,
createdAt: Sequelize.literal('NOW()'),
updatedAt: Sequelize.literal('NOW()'),
},
{
name: 'Edit Application',
key: 'editApplication',
isActive: true,
group_id: 6,
isProtected: false,
orderId: 37,
created_by: 1,
updated_by: 1,
createdAt: Sequelize.literal('NOW()'),
updatedAt: Sequelize.literal('NOW()'),
},
{
name: 'Application Download',
key: 'applicationDownload',
isActive: true,
group_id: 6,
isProtected: false,
orderId: 38,
created_by: 1,
updated_by: 1,
createdAt: Sequelize.literal('NOW()'),
updatedAt: Sequelize.literal('NOW()'),
},
{
name: 'Download Resume',
key: 'downloadResume',
isActive: true,
group_id: 6,
isProtected: false,
orderId: 39,
created_by: 1,
updated_by: 1,
createdAt: Sequelize.literal('NOW()'),
updatedAt: Sequelize.literal('NOW()'),
},
{
name: 'Add Job',
key: 'addJob',
isActive: true,
group_id: 5,
isProtected: false,
orderId: 40,
created_by: 1,
updated_by: 1,
createdAt: Sequelize.literal('NOW()'),
updatedAt: Sequelize.literal('NOW()'),
},
{
name: 'Post Job',
key: 'postJob',
isActive: true,
group_id: 5,
isProtected: false,
orderId: 41,
created_by: 1,
updated_by: 1,
createdAt: Sequelize.literal('NOW()'),
updatedAt: Sequelize.literal('NOW()'),
},
{
name: 'Close Job',
key: 'closeJob',
isActive: true,
group_id: 5,
isProtected: false,
orderId: 40,
created_by: 1,
updated_by: 1,
createdAt: Sequelize.literal('NOW()'),
updatedAt: Sequelize.literal('NOW()'),
},
{
name: 'Job Move To Draft',
key: 'jobMoveToDraft',
isActive: true,
group_id: 5,
isProtected: false,
orderId: 41,
created_by: 1,
updated_by: 1,
createdAt: Sequelize.literal('NOW()'),
updatedAt: Sequelize.literal('NOW()'),
},
{
name: 'Delete Job',
key: 'deleteJob',
isActive: true,
group_id: 5,
isProtected: false,
orderId: 42,
created_by: 1,
updated_by: 1,
createdAt: Sequelize.literal('NOW()'),
updatedAt: Sequelize.literal('NOW()'),
},
{
name: 'Duplicate Job',
key: 'duplicateJob',
isActive: true,
group_id: 5,
isProtected: false,
orderId: 43,
created_by: 1,
updated_by: 1,
createdAt: Sequelize.literal('NOW()'),
updatedAt: Sequelize.literal('NOW()'),
},
{
name: 'Edit Job',
key: 'editJob',
isActive: true,
group_id: 5,
isProtected: false,
orderId: 44,
created_by: 1,
updated_by: 1,
createdAt: Sequelize.literal('NOW()'),
updatedAt: Sequelize.literal('NOW()'),
},
{
name: 'Job Downloads',
key: 'jobDownloads',
isActive: true,
group_id: 5,
isProtected: false,
orderId: 45,
created_by: 1,
updated_by: 1,
createdAt: Sequelize.literal('NOW()'),
updatedAt: Sequelize.literal('NOW()'),
},
],
{}
);
},