in src/server/middleware/authenticated.js [38:65]
function authenticateForAdminOnlyApi(req, res, next) {
passport.authenticate('token', { session: false }, function (err, user) {
if (err) {
return next(err)
}
if (!user) {
return res.status(401).json({ message: 'Incorrect token credentials' })
}
if (!utils.couldBeAdmin(user.login) || (req.args.org && user.scope.indexOf('admin:org_hook') < 0)) {
return res.status(403).json({ message: 'Must have admin:org_hook permission scope' })
}
let promises = []
if (req.args.owner && req.args.repo) {
promises.push(utils.checkRepoPushPermissionByName(req.args.repo, req.args.owner, user.token))
}
if (req.args.org) {
promises.push(utils.checkOrgAdminPermission(req.args.org, user.login, user.token))
}
return q.all(promises).then(function () {
req.user = user
next()
}).catch(function (error) {
return res.status(403).json({ message: error.message || error })
})
})(req, res)
}