Skip to content

Commit f739eac

Browse files
committed
fix(core): verify user exists
1 parent ae904d3 commit f739eac

File tree

1 file changed

+18
-2
lines changed

1 file changed

+18
-2
lines changed

src/controllers/api/v1/tickets.js

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
var async = require('async')
1616
var _ = require('lodash')
1717
var moment = require('moment-timezone')
18-
var winston = require('winston')
18+
var winston = require('../../../logger')
1919
var permissions = require('../../../permissions')
2020
var emitter = require('../../../emitter')
2121
var xss = require('xss')
@@ -1828,12 +1828,23 @@ apiTickets.subscribe = function (req, res) {
18281828
if (_.isUndefined(data.user) || _.isUndefined(data.subscribe))
18291829
return res.status(400).json({ error: 'Invalid Post Data.' })
18301830

1831+
if (data.user.toString() !== req.user._id.toString()) return res.status(401).json({ error: 'Unauthorized!' })
1832+
18311833
var ticketModel = require('../../../models/ticket')
18321834
ticketModel.getTicketById(ticketId, function (err, ticket) {
18331835
if (err) return res.status(400).json({ error: 'Invalid Ticket Id' })
18341836

18351837
async.series(
18361838
[
1839+
function (callback) {
1840+
require('../../../models/user').find({ _id: data.user }, function (err, user) {
1841+
if (err) return callback(err)
1842+
1843+
if (!user) return callback(new Error('Unauthorized!'))
1844+
1845+
return callback()
1846+
})
1847+
},
18371848
function (callback) {
18381849
if (data.subscribe) {
18391850
ticket.addSubscriber(data.user, function () {
@@ -1846,7 +1857,12 @@ apiTickets.subscribe = function (req, res) {
18461857
}
18471858
}
18481859
],
1849-
function () {
1860+
function (err) {
1861+
if (err) {
1862+
winston.warn(err)
1863+
return res.status(401).json({ error: 'Unauthorized!' })
1864+
}
1865+
18501866
ticket.save(function (err, ticket) {
18511867
if (err) return res.status(400).json({ error: err })
18521868

0 commit comments

Comments
 (0)