Skip to content
Snippets Groups Projects
Commit e5464f35 authored by jaredhilton's avatar jaredhilton
Browse files

Get user by token AND user id, make /api/info match expected properties

parent 4f3f0c6d
No related merge requests found
RocketChat.API.default.helperMethods.set('getLoggedInUser', function _getLoggedInUser() {
let token;
let user;
if (this.request.headers['x-auth-token']) {
token = Accounts._hashLoginToken(this.request.headers['x-auth-token']);
user = RocketChat.models.Users.findOne({'services.resume.loginTokens.hashedToken': token});
if (this.request.headers['x-auth-token'] && this.request.headers['x-user-id']) {
user = RocketChat.models.Users.findOne({
'_id': this.request.headers['x-user-id'],
'services.resume.loginTokens.hashedToken': Accounts._hashLoginToken(this.request.headers['x-auth-token'])
});
}
return user;
......
......@@ -3,15 +3,14 @@ RocketChat.API.default.addRoute('info', { authRequired: false }, {
const user = this.getLoggedInUser();
if (user && RocketChat.authz.hasRole(user._id, 'admin')) {
return {
return RocketChat.API.v1.success({
info: RocketChat.Info
};
});
}
return RocketChat.API.v1.success({
info: {
'version': RocketChat.Info.version
}
version: RocketChat.Info.version,
build: RocketChat.Info.build
});
}
});
RocketChat.API.v1.helperMethods.set('getLoggedInUser', function _getLoggedInUser() {
let token;
let user;
if (this.request.headers['x-auth-token']) {
token = Accounts._hashLoginToken(this.request.headers['x-auth-token']);
user = RocketChat.models.Users.findOne({'services.resume.loginTokens.hashedToken': token});
if (this.request.headers['x-auth-token'] && this.request.headers['x-user-id']) {
user = RocketChat.models.Users.findOne({
'_id': this.request.headers['x-user-id'],
'services.resume.loginTokens.hashedToken': Accounts._hashLoginToken(this.request.headers['x-auth-token'])
});
}
return user;
......
......@@ -3,9 +3,9 @@ RocketChat.API.v1.addRoute('info', { authRequired: false }, {
const user = this.getLoggedInUser();
if (user && RocketChat.authz.hasRole(user._id, 'admin')) {
return {
return RocketChat.API.v1.success({
info: RocketChat.Info
};
});
}
return RocketChat.API.v1.success({
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment