Skip to content

Commit 937ad3b

Browse files
Merge branch 'develop' into feature/DEVSU-2932-add-create_project-permission
2 parents 95c02e7 + f8065da commit 937ad3b

5 files changed

Lines changed: 43 additions & 6 deletions

File tree

app/middleware/acl.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -121,13 +121,16 @@ module.exports = async (req, res, next) => {
121121
try {
122122
// Update last time the user logged in, limit to once a day
123123
const currentDate = new Date().toDateString();
124-
let userMetadata = await db.models.userMetadata.findOrCreate({where: {userId: req.user.id}});
124+
let userMetadata = await db.models.userMetadata.findOrCreate({
125+
where: {userId: req.user.id},
126+
defaults: {updatedBy: req.user.id},
127+
});
125128
userMetadata = userMetadata[0];
126129
const userLastLogin = userMetadata.lastLoginAt
127130
? new Date(userMetadata.lastLoginAt).toDateString()
128131
: '';
129132
if (userLastLogin !== currentDate) {
130-
await userMetadata.update({lastLoginAt: new Date()});
133+
await userMetadata.update({lastLoginAt: new Date()}, {userId: req.user.id});
131134
}
132135

133136
try {

app/routes/user/settings.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,14 @@ router.route('/')
2121
})
2222
.put(async (req, res) => {
2323
try {
24-
await db.models.userMetadata.update({settings: req.body}, {
24+
await db.models.userMetadata.update({
25+
settings: req.body,
26+
updatedBy: req.user.id,
27+
}, {
2528
where: {
2629
user_id: req.user.id,
2730
},
28-
fields: ['settings'],
31+
fields: ['settings', 'updatedBy'],
2932
hooks: false,
3033
limit: 1,
3134
});

app/routes/user/user.js

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -260,9 +260,15 @@ router.route('/')
260260
// Create transaction
261261
transaction = await db.transaction();
262262
// Create user
263-
const createdUser = await db.models.user.create(req.body, {transaction});
263+
const createdUser = await db.models.user.create({
264+
...req.body,
265+
updatedBy: req.user.id,
266+
}, {transaction});
264267
// Create user metadata
265-
await db.models.userMetadata.create({userId: createdUser.id}, {transaction});
268+
await db.models.userMetadata.create({
269+
userId: createdUser.id,
270+
updatedBy: req.user.id,
271+
}, {transaction});
266272
// Commit changes
267273
await transaction.commit();
268274
// Return new user

test/routes/user/settings.test.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ describe('/user/settings', () => {
6868
where: {userId: testUser.id},
6969
});
7070
expect(results.length).toBe(1);
71+
expect(results[0].updatedBy).toBe(testUser.id);
7172
});
7273
});
7374
});

test/routes/user/user.test.js

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,13 +46,17 @@ beforeAll(async () => {
4646
// Tests for user related endpoints
4747
describe('/user', () => {
4848
let testUser;
49+
let managerUser;
4950
let adminGroup;
5051

5152
beforeAll(async () => {
5253
// get test user
5354
testUser = await db.models.user.findOne({
5455
where: {username},
5556
});
57+
managerUser = await db.models.user.findOne({
58+
where: {username: managerUsername},
59+
});
5660
adminGroup = await db.models.userGroup.findOne({
5761
where: {name: 'admin'},
5862
});
@@ -162,6 +166,16 @@ describe('/user', () => {
162166
})
163167
.expect(HTTP_STATUS.CREATED);
164168

169+
const createdUser = await db.models.user.findOne({
170+
where: {ident: res.body.ident},
171+
});
172+
const createdMetadata = await db.models.userMetadata.findOne({
173+
where: {userId: createdUser.id},
174+
});
175+
176+
expect(createdUser.updatedBy).toBe(testUser.id);
177+
expect(createdMetadata.updatedBy).toBe(testUser.id);
178+
165179
// Remove test user from db
166180
await db.models.user.destroy({where: {ident: res.body.ident}, force: true});
167181
});
@@ -180,6 +194,16 @@ describe('/user', () => {
180194
})
181195
.expect(HTTP_STATUS.CREATED);
182196

197+
const createdUser = await db.models.user.findOne({
198+
where: {ident: res.body.ident},
199+
});
200+
const createdMetadata = await db.models.userMetadata.findOne({
201+
where: {userId: createdUser.id},
202+
});
203+
204+
expect(createdUser.updatedBy).toBe(managerUser.id);
205+
expect(createdMetadata.updatedBy).toBe(managerUser.id);
206+
183207
// Remove test user from db
184208
await db.models.user.destroy({where: {ident: res.body.ident}, force: true});
185209
});

0 commit comments

Comments
 (0)