diff --git a/backend/controllers/user.controller.js b/backend/controllers/user.controller.js index e81b497..28c352f 100644 --- a/backend/controllers/user.controller.js +++ b/backend/controllers/user.controller.js @@ -21,10 +21,14 @@ exports.findAll = (req, res) => { exports.findOne = (req, res) => { const id = req.params.id; - User.findByPk(id) + User.findByPk(id, { + include: ['roles'] + }) .then(data => { if (data) { - res.send(data); + let dts = data.toJSON(); + dts.roles = data.roles.map(role => "ROLE_" + role.name.toUpperCase()); + res.send(dts); } else { res.status(404).send({ message: `Cannot find user with id=${id}.` diff --git a/backend/models/role.model.js b/backend/models/role.model.js index bb418f3..a75f27c 100644 --- a/backend/models/role.model.js +++ b/backend/models/role.model.js @@ -10,6 +10,7 @@ module.exports = (sequelize, DataTypes) => { Role.belongsToMany(models.User, { through: "UserRoles", foreignKey: 'roleId', + otherKey: 'userId', as: 'users', }); } @@ -25,4 +26,4 @@ module.exports = (sequelize, DataTypes) => { tableName: "Roles", }); return Role; -}; \ No newline at end of file +}; diff --git a/backend/models/user.model.js b/backend/models/user.model.js index 16901f8..377c5ac 100644 --- a/backend/models/user.model.js +++ b/backend/models/user.model.js @@ -11,6 +11,7 @@ module.exports = (sequelize, DataTypes) => { User.belongsToMany(models.Role, { through: "UserRoles", foreignKey: 'userId', + otherKey: 'roleId', as: 'roles', }); User.belongsTo(models.Auth, { diff --git a/backend/models/userRole.model.js b/backend/models/userRole.model.js new file mode 100644 index 0000000..7d5183d --- /dev/null +++ b/backend/models/userRole.model.js @@ -0,0 +1,30 @@ +const { Model } = require('sequelize'); + +module.exports = (sequelize, DataTypes) => { + class UserRole extends Model { + static associate(models) {} + } + + UserRole.init({ + userId: { + type: DataTypes.INTEGER, + references: { + model: 'Users', + key: 'id' + } + }, + roleId: { + type: DataTypes.INTEGER, + references: { + model: 'Roles', + key: 'id' + } + } + }, { + sequelize, + modelName: 'UserRole', + tableName: 'UserRoles' + }); + + return UserRole; +};