diff --git a/src/constants/index.js b/src/constants/index.js index 25efad3..31e6641 100644 --- a/src/constants/index.js +++ b/src/constants/index.js @@ -1,3 +1,4 @@ const dbTables = require('./dbTables'); +const constantRoles = require('./roles'); -module.exports = { dbTables }; +module.exports = { dbTables, constantRoles }; diff --git a/src/constants/roles.js b/src/constants/roles.js new file mode 100644 index 0000000..d798827 --- /dev/null +++ b/src/constants/roles.js @@ -0,0 +1,3 @@ +module.exports = { + DEFAULT_ROLE: 'default', +}; diff --git a/src/controllers/auth.js b/src/controllers/auth.js index 91c5220..81301dd 100644 --- a/src/controllers/auth.js +++ b/src/controllers/auth.js @@ -1,9 +1,11 @@ const { tableService } = require('../services'); const { rowService } = require('../services'); -const { dbTables } = require('../constants'); +const { dbTables, constantRoles } = require('../constants'); const { hashPassword } = require('../utils'); const createDefaultTables = async () => { + let roleId; + // check if the default tables are already created const roleTable = tableService.checkTableExists('_roles'); const usersTable = tableService.checkTableExists('_users'); @@ -11,27 +13,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',