Move the default role to a constant folder + separate if statements for _role and _roles_permissions

This commit is contained in:
AbegaM
2024-03-01 14:18:00 +03:00
parent bfb50e6a7e
commit 78b43e064b
3 changed files with 17 additions and 5 deletions

View File

@@ -1,3 +1,4 @@
const dbTables = require('./dbTables');
const constantRoles = require('./roles');
module.exports = { dbTables };
module.exports = { dbTables, constantRoles };

3
src/constants/roles.js Normal file
View File

@@ -0,0 +1,3 @@
module.exports = {
DEFAULT_ROLE: 'default',
};

View File

@@ -1,8 +1,10 @@
const { tableService } = require('../services');
const { rowService } = require('../services');
const { dbTables } = require('../constants');
const { dbTables, constantRoles } = require('../constants');
const createDefaultTables = async () => {
let roleId;
// check if the default tables are already created
const roleTable = tableService.checkTableExists('_roles');
const usersTable = tableService.checkTableExists('_users');
@@ -10,27 +12,33 @@ const createDefaultTables = async () => {
tableService.checkTableExists('_roles_permissions');
const usersRolesTable = tableService.checkTableExists('_users_roles');
// create _users table
if (!usersTable) {
// create the _users table
tableService.createTable('_users', dbTables.userSchema);
}
// create _users_roles table
if (!usersRolesTable) {
// create the _users_roles table
tableService.createTable('_users_roles', dbTables.usersRoleSchema);
}
if (!roleTable && !rolesPermissionTable) {
// create _roles table
if (!roleTable) {
// create the _role table
tableService.createTable('_roles', dbTables.roleSchema);
// create a default role in the _roles table
const role = rowService.save({
tableName: '_roles',
fields: { name: 'defaultt' },
fields: { name: constantRoles.DEFAULT_ROLE },
});
const roleId = role.lastInsertRowid;
roleId = role.lastInsertRowid;
}
// create _roles_permissions table
if (!rolesPermissionTable && roleId) {
// create the _roles_permissions table
tableService.createTable(
'_roles_permissions',