Skip to content

Commit

Permalink
Fix some issues on PR #154
Browse files Browse the repository at this point in the history
  • Loading branch information
yeln4ts committed Nov 2, 2021
1 parent 876b96d commit 9a0ab63
Show file tree
Hide file tree
Showing 7 changed files with 326 additions and 226 deletions.
4 changes: 4 additions & 0 deletions backend/src/lib/report-generator.js
Original file line number Diff line number Diff line change
Expand Up @@ -346,6 +346,8 @@ async function prepAuditData(data) {
username: collab.username || "undefined",
firstname: collab.firstname || "undefined",
lastname: collab.lastname || "undefined",
email: collab.email || "undefined",
phone: collab.phone || "undefined",
role: collab.role || "undefined"
})
})
Expand Down Expand Up @@ -398,6 +400,8 @@ async function prepAuditData(data) {
result.creator.username = data.creator.username || "undefined"
result.creator.firstname = data.creator.firstname || "undefined"
result.creator.lastname = data.creator.lastname || "undefined"
result.creator.email = data.creator.email || "undefined"
result.creator.phone = data.creator.phone || "undefined"
result.creator.role = data.creator.role || "undefined"
}

Expand Down
4 changes: 2 additions & 2 deletions backend/src/models/audit.js
Original file line number Diff line number Diff line change
Expand Up @@ -114,10 +114,10 @@ AuditSchema.statics.getAudit = (isAdmin, auditId, userId) => {
if (!isAdmin)
query.or([{creator: userId}, {collaborators: userId}, {reviewers: userId}])
query.populate('template')
query.populate('creator', 'username firstname lastname role')
query.populate('creator', 'username firstname lastname email phone role')
query.populate('company')
query.populate('client')
query.populate('collaborators', 'username firstname lastname role')
query.populate('collaborators', 'username firstname lastname email phone role')
query.populate('reviewers', 'username firstname lastname role')
query.populate('approvals', 'username firstname lastname role')
query.populate('customFields.customField', 'label fieldType text')
Expand Down
13 changes: 11 additions & 2 deletions backend/src/models/user.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,15 @@ var jwt = require('jsonwebtoken');

var auth = require('../lib/auth.js');
const { generateUUID } = require('../lib/utils.js');
var _ = require('lodash')

var UserSchema = new Schema({
username: {type: String, unique: true, required: true},
password: {type: String, required: true},
firstname: {type: String, required: true},
lastname: {type: String, required: true},
email: {type: String, required: false},
phone: {type: String, required: false},
role: {type: String, default: 'user'},
refreshTokens: [{_id: false, sessionId: String, userAgent: String, token: String}]
}, {timestamps: true});
Expand Down Expand Up @@ -41,7 +44,7 @@ UserSchema.statics.create = function (user) {
UserSchema.statics.getAll = function () {
return new Promise((resolve, reject) => {
var query = this.find();
query.select('username firstname lastname role');
query.select('username firstname lastname email phone role');
query.exec()
.then(function(rows) {
resolve(rows);
Expand All @@ -56,7 +59,7 @@ UserSchema.statics.getAll = function () {
UserSchema.statics.getByUsername = function (username) {
return new Promise((resolve, reject) => {
var query = this.findOne({username: username})
query.select('username firstname lastname role');
query.select('username firstname lastname email phone role');
query.exec()
.then(function(row) {
if (row)
Expand All @@ -83,13 +86,17 @@ UserSchema.statics.updateProfile = function (username, user) {
if (user.username) row.username = user.username;
if (user.firstname) row.firstname = user.firstname;
if (user.lastname) row.lastname = user.lastname;
if (!_.isNil(user.email)) row.email = user.email;
if (!_.isNil(user.phone)) row.phone = user.phone;
if (user.newPassword) row.password = bcrypt.hashSync(user.newPassword, 10);

payload.id = row._id;
payload.username = row.username;
payload.role = row.role;
payload.firstname = row.firstname;
payload.lastname = row.lastname;
payload.email = row.email;
payload.phone = row.phone;
payload.roles = auth.acl.getRoles(payload.role)

return row.save();
Expand Down Expand Up @@ -167,6 +174,8 @@ UserSchema.statics.updateRefreshToken = function (refreshToken, userAgent) {
payload.role = row.role
payload.firstname = row.firstname
payload.lastname = row.lastname
payload.email = row.email
payload.phone = row.phone
payload.roles = auth.acl.getRoles(payload.role)

token = jwt.sign(payload, auth.jwtSecret, {expiresIn: '15 minutes'})
Expand Down
7 changes: 7 additions & 0 deletions backend/src/routes/user.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ module.exports = function(app) {
var acl = require('../lib/auth').acl;
var jwtRefreshSecret = require('../lib/auth').jwtRefreshSecret
var jwt = require('jsonwebtoken')
var _ = require('lodash')

// Check token validity
app.get("/api/users/checktoken", acl.hasPermission('validtoken'), function(req, res) {
Expand Down Expand Up @@ -134,6 +135,8 @@ module.exports = function(app) {

//Optionals params
user.role = req.body.role || 'user';
if (req.body.email) user.email = req.body.email;
if (req.body.phone) user.phone = req.body.phone;

User.create(user)
.then(msg => Response.Created(res, 'User created successfully'))
Expand Down Expand Up @@ -203,6 +206,8 @@ module.exports = function(app) {
if (req.body.newPassword) user.newPassword = req.body.newPassword;
if (req.body.firstname) user.firstname = req.body.firstname;
if (req.body.lastname) user.lastname = req.body.lastname;
if (!_.isNil(req.body.email)) user.email = req.body.email;
if (!_.isNil(req.body.phone)) user.phone = req.body.phone;

User.updateProfile(req.decodedToken.username, user)
.then(msg => {
Expand All @@ -221,6 +226,8 @@ module.exports = function(app) {
if (req.body.password) user.password = req.body.password;
if (req.body.firstname) user.firstname = req.body.firstname;
if (req.body.lastname) user.lastname = req.body.lastname;
if (!_.isNil(req.body.email)) user.email = req.body.email;
if (!_.isNil(req.body.phone)) user.phone = req.body.phone;
if (req.body.role) user.role = req.body.role;

User.updateUser(req.params.id, user)
Expand Down

0 comments on commit 9a0ab63

Please sign in to comment.