diff --git a/app/api/server/v1/users.js b/app/api/server/v1/users.js index 6d3c380bbe7e2..c285d140a9e8e 100644 --- a/app/api/server/v1/users.js +++ b/app/api/server/v1/users.js @@ -199,6 +199,7 @@ API.v1.addRoute('users.info', { authRequired: true }, { name: 1, t: 1, roles: 1, + unread: 1, }, sort: { t: 1, diff --git a/app/models/server/models/Subscriptions.js b/app/models/server/models/Subscriptions.js index c98ebdd695238..0abe38ffbb936 100644 --- a/app/models/server/models/Subscriptions.js +++ b/app/models/server/models/Subscriptions.js @@ -468,7 +468,7 @@ export class Subscriptions extends Base { // FIND findByUserId(userId, options) { - const query = { 'u._id': userId }; + const query = { 'u._id': userId }; return this.find(query, options); } @@ -642,7 +642,7 @@ export class Subscriptions extends Base { // UPDATE archiveByRoomId(roomId) { - const query = { rid: roomId }; + const query = { rid: roomId }; const update = { $set: { @@ -656,7 +656,7 @@ export class Subscriptions extends Base { } unarchiveByRoomId(roomId) { - const query = { rid: roomId }; + const query = { rid: roomId }; const update = { $set: { @@ -767,7 +767,7 @@ export class Subscriptions extends Base { } updateNameAndAlertByRoomId(roomId, name, fname) { - const query = { rid: roomId }; + const query = { rid: roomId }; const update = { $set: { @@ -781,7 +781,7 @@ export class Subscriptions extends Base { } updateDisplayNameByRoomId(roomId, fname) { - const query = { rid: roomId }; + const query = { rid: roomId }; const update = { $set: { @@ -819,7 +819,7 @@ export class Subscriptions extends Base { } setUserUsernameByUserId(userId, username) { - const query = { 'u._id': userId }; + const query = { 'u._id': userId }; const update = { $set: { @@ -1087,7 +1087,7 @@ export class Subscriptions extends Base { } updateTypeByRoomId(roomId, type) { - const query = { rid: roomId }; + const query = { rid: roomId }; const update = { $set: { @@ -1099,7 +1099,7 @@ export class Subscriptions extends Base { } addRoleById(_id, role) { - const query = { _id }; + const query = { _id }; const update = { $addToSet: { @@ -1111,7 +1111,7 @@ export class Subscriptions extends Base { } removeRoleById(_id, role) { - const query = { _id }; + const query = { _id }; const update = { $pull: { diff --git a/tests/end-to-end/api/01-users.js b/tests/end-to-end/api/01-users.js index dba49e4c02559..396e579b811d3 100644 --- a/tests/end-to-end/api/01-users.js +++ b/tests/end-to-end/api/01-users.js @@ -247,6 +247,22 @@ describe('[Users]', function() { }) .end(done); }); + it('should return "unread" property for each room when user request it and the user has the necessary permission (admin, "view-other-user-channels")', (done) => { + request.get(api('users.info')) + .set(credentials) + .query({ + userId: targetUser._id, + fields: JSON.stringify({ userRooms: 1 }), + }) + .expect('Content-Type', 'application/json') + .expect(200) + .expect((res) => { + expect(res.body).to.have.property('success', true); + expect(res.body).to.have.nested.property('user.rooms').and.to.be.an('array'); + res.body.user.rooms.forEach((room) => expect(room).to.have.property('unread')); + }) + .end(done); + }); it('should NOT return "rooms" property when user NOT request it but the user has the necessary permission (admin, "view-other-user-channels")', (done) => { request.get(api('users.info')) .set(credentials)