diff options
Diffstat (limited to 'lib/web')
-rw-r--r-- | lib/web/auth/dropbox/index.js | 2 | ||||
-rw-r--r-- | lib/web/auth/email/index.js | 14 | ||||
-rw-r--r-- | lib/web/auth/facebook/index.js | 2 | ||||
-rw-r--r-- | lib/web/auth/github/index.js | 2 | ||||
-rw-r--r-- | lib/web/auth/gitlab/index.js | 2 | ||||
-rw-r--r-- | lib/web/auth/google/index.js | 7 | ||||
-rw-r--r-- | lib/web/auth/ldap/index.js | 8 | ||||
-rw-r--r-- | lib/web/auth/mattermost/index.js | 14 | ||||
-rw-r--r-- | lib/web/auth/oauth2/index.js | 2 | ||||
-rw-r--r-- | lib/web/auth/openid/index.js | 8 | ||||
-rw-r--r-- | lib/web/auth/saml/index.js | 9 | ||||
-rw-r--r-- | lib/web/auth/twitter/index.js | 2 | ||||
-rw-r--r-- | lib/web/auth/utils.js | 5 | ||||
-rw-r--r-- | lib/web/historyRouter.js | 2 | ||||
-rw-r--r-- | lib/web/imageRouter/azure.js | 8 | ||||
-rw-r--r-- | lib/web/imageRouter/filesystem.js | 8 | ||||
-rw-r--r-- | lib/web/imageRouter/imgur.js | 22 | ||||
-rw-r--r-- | lib/web/imageRouter/index.js | 7 | ||||
-rw-r--r-- | lib/web/imageRouter/lutim.js | 30 | ||||
-rw-r--r-- | lib/web/imageRouter/minio.js | 6 | ||||
-rw-r--r-- | lib/web/imageRouter/s3.js | 3 | ||||
-rw-r--r-- | lib/web/middleware/tooBusy.js | 3 | ||||
-rw-r--r-- | lib/web/noteRouter.js | 2 | ||||
-rw-r--r-- | lib/web/statusRouter.js | 6 | ||||
-rw-r--r-- | lib/web/userRouter.js | 2 |
25 files changed, 108 insertions, 68 deletions
diff --git a/lib/web/auth/dropbox/index.js b/lib/web/auth/dropbox/index.js index c44607da..1cfabd29 100644 --- a/lib/web/auth/dropbox/index.js +++ b/lib/web/auth/dropbox/index.js @@ -4,7 +4,7 @@ const Router = require('express').Router const passport = require('passport') const DropboxStrategy = require('passport-dropbox-oauth2').Strategy const config = require('../../../config') -const {setReturnToFromReferer, passportGeneralCallback} = require('../utils') +const { setReturnToFromReferer, passportGeneralCallback } = require('../utils') let dropboxAuth = module.exports = Router() diff --git a/lib/web/auth/email/index.js b/lib/web/auth/email/index.js index f7e58d46..32e21428 100644 --- a/lib/web/auth/email/index.js +++ b/lib/web/auth/email/index.js @@ -7,8 +7,8 @@ const LocalStrategy = require('passport-local').Strategy const config = require('../../../config') const models = require('../../../models') const logger = require('../../../logger') -const {setReturnToFromReferer} = require('../utils') -const {urlencodedParser} = require('../../utils') +const { setReturnToFromReferer } = require('../utils') +const { urlencodedParser } = require('../../utils') const response = require('../../../response') let emailAuth = module.exports = Router() @@ -23,8 +23,14 @@ passport.use(new LocalStrategy({ } }).then(function (user) { if (!user) return done(null, false) - if (!user.verifyPassword(password)) return done(null, false) - return done(null, user) + user.verifyPassword(password).then(verified => { + if (verified) { + return done(null, user) + } else { + logger.warn('invalid password given for %s', user.email) + return done(null, false) + } + }) }).catch(function (err) { logger.error(err) return done(err) diff --git a/lib/web/auth/facebook/index.js b/lib/web/auth/facebook/index.js index b2364989..418ddeee 100644 --- a/lib/web/auth/facebook/index.js +++ b/lib/web/auth/facebook/index.js @@ -5,7 +5,7 @@ const passport = require('passport') const FacebookStrategy = require('passport-facebook').Strategy const config = require('../../../config') -const {setReturnToFromReferer, passportGeneralCallback} = require('../utils') +const { setReturnToFromReferer, passportGeneralCallback } = require('../utils') let facebookAuth = module.exports = Router() diff --git a/lib/web/auth/github/index.js b/lib/web/auth/github/index.js index ece634ba..afa5fa31 100644 --- a/lib/web/auth/github/index.js +++ b/lib/web/auth/github/index.js @@ -5,7 +5,7 @@ const passport = require('passport') const GithubStrategy = require('passport-github').Strategy const config = require('../../../config') const response = require('../../../response') -const {setReturnToFromReferer, passportGeneralCallback} = require('../utils') +const { setReturnToFromReferer, passportGeneralCallback } = require('../utils') let githubAuth = module.exports = Router() diff --git a/lib/web/auth/gitlab/index.js b/lib/web/auth/gitlab/index.js index 38436024..4cebbc10 100644 --- a/lib/web/auth/gitlab/index.js +++ b/lib/web/auth/gitlab/index.js @@ -5,7 +5,7 @@ const passport = require('passport') const GitlabStrategy = require('passport-gitlab2').Strategy const config = require('../../../config') const response = require('../../../response') -const {setReturnToFromReferer, passportGeneralCallback} = require('../utils') +const { setReturnToFromReferer, passportGeneralCallback } = require('../utils') let gitlabAuth = module.exports = Router() diff --git a/lib/web/auth/google/index.js b/lib/web/auth/google/index.js index 60282cf5..ad9bcd7a 100644 --- a/lib/web/auth/google/index.js +++ b/lib/web/auth/google/index.js @@ -4,21 +4,22 @@ const Router = require('express').Router const passport = require('passport') var GoogleStrategy = require('passport-google-oauth20').Strategy const config = require('../../../config') -const {setReturnToFromReferer, passportGeneralCallback} = require('../utils') +const { setReturnToFromReferer, passportGeneralCallback } = require('../utils') let googleAuth = module.exports = Router() passport.use(new GoogleStrategy({ clientID: config.google.clientID, clientSecret: config.google.clientSecret, - callbackURL: config.serverURL + '/auth/google/callback' + callbackURL: config.serverURL + '/auth/google/callback', + userProfileURL: 'https://www.googleapis.com/oauth2/v3/userinfo' }, passportGeneralCallback)) googleAuth.get('/auth/google', function (req, res, next) { setReturnToFromReferer(req) passport.authenticate('google', { scope: ['profile'] })(req, res, next) }) - // google auth callback +// google auth callback googleAuth.get('/auth/google/callback', passport.authenticate('google', { successReturnToOrRedirect: config.serverURL + '/', diff --git a/lib/web/auth/ldap/index.js b/lib/web/auth/ldap/index.js index 8d71c18e..96143664 100644 --- a/lib/web/auth/ldap/index.js +++ b/lib/web/auth/ldap/index.js @@ -6,8 +6,8 @@ const LDAPStrategy = require('passport-ldapauth') const config = require('../../../config') const models = require('../../../models') const logger = require('../../../logger') -const {setReturnToFromReferer} = require('../utils') -const {urlencodedParser} = require('../../utils') +const { setReturnToFromReferer } = require('../utils') +const { urlencodedParser } = require('../../utils') const response = require('../../../response') let ldapAuth = module.exports = Router() @@ -66,11 +66,11 @@ passport.use(new LDAPStrategy({ } if (needSave) { user.save().then(function () { - if (config.debug) { logger.debug('user login: ' + user.id) } + logger.debug(`user login: ${user.id}`) return done(null, user) }) } else { - if (config.debug) { logger.debug('user login: ' + user.id) } + logger.debug(`user login: ${user.id}`) return done(null, user) } } diff --git a/lib/web/auth/mattermost/index.js b/lib/web/auth/mattermost/index.js index 63a4886f..48d6d297 100644 --- a/lib/web/auth/mattermost/index.js +++ b/lib/web/auth/mattermost/index.js @@ -5,7 +5,7 @@ const passport = require('passport') const Mattermost = require('mattermost') const OAuthStrategy = require('passport-oauth2').Strategy const config = require('../../../config') -const {setReturnToFromReferer, passportGeneralCallback} = require('../utils') +const { setReturnToFromReferer, passportGeneralCallback } = require('../utils') const mattermost = new Mattermost.Client() @@ -24,12 +24,12 @@ mattermostStrategy.userProfile = (accessToken, done) => { mattermost.token = accessToken mattermost.useHeaderToken() mattermost.getMe( - (data) => { - done(null, data) - }, - (err) => { - done(err) - } + (data) => { + done(null, data) + }, + (err) => { + done(err) + } ) } diff --git a/lib/web/auth/oauth2/index.js b/lib/web/auth/oauth2/index.js index 57ab9b9a..78434271 100644 --- a/lib/web/auth/oauth2/index.js +++ b/lib/web/auth/oauth2/index.js @@ -4,7 +4,7 @@ const Router = require('express').Router const passport = require('passport') const { Strategy, InternalOAuthError } = require('passport-oauth2') const config = require('../../../config') -const {setReturnToFromReferer, passportGeneralCallback} = require('../utils') +const { setReturnToFromReferer, passportGeneralCallback } = require('../utils') let oauth2Auth = module.exports = Router() diff --git a/lib/web/auth/openid/index.js b/lib/web/auth/openid/index.js index c45c6d71..b0a28bec 100644 --- a/lib/web/auth/openid/index.js +++ b/lib/web/auth/openid/index.js @@ -6,8 +6,8 @@ const OpenIDStrategy = require('@passport-next/passport-openid').Strategy const config = require('../../../config') const models = require('../../../models') const logger = require('../../../logger') -const {urlencodedParser} = require('../../utils') -const {setReturnToFromReferer} = require('../utils') +const { urlencodedParser } = require('../../utils') +const { setReturnToFromReferer } = require('../utils') let openIDAuth = module.exports = Router() @@ -33,11 +33,11 @@ passport.use(new OpenIDStrategy({ } if (needSave) { user.save().then(function () { - if (config.debug) { logger.info('user login: ' + user.id) } + logger.debug(`user login: ${user.id}`) return done(null, user) }) } else { - if (config.debug) { logger.info('user login: ' + user.id) } + logger.debug(`user login: ${user.id}`) return done(null, user) } } diff --git a/lib/web/auth/saml/index.js b/lib/web/auth/saml/index.js index b8d98340..40a6f8b3 100644 --- a/lib/web/auth/saml/index.js +++ b/lib/web/auth/saml/index.js @@ -6,7 +6,7 @@ const SamlStrategy = require('passport-saml').Strategy const config = require('../../../config') const models = require('../../../models') const logger = require('../../../logger') -const {urlencodedParser} = require('../../utils') +const { urlencodedParser } = require('../../utils') const fs = require('fs') const intersection = function (array1, array2) { return array1.filter((n) => array2.includes(n)) } @@ -17,7 +17,8 @@ passport.use(new SamlStrategy({ entryPoint: config.saml.idpSsoUrl, issuer: config.saml.issuer || config.serverURL, cert: fs.readFileSync(config.saml.idpCert, 'utf-8'), - identifierFormat: config.saml.identifierFormat + identifierFormat: config.saml.identifierFormat, + disableRequestedAuthnContext: config.saml.disableRequestedAuthnContext }, function (user, done) { // check authorization if needed if (config.saml.externalGroups && config.saml.groupAttribute) { @@ -61,11 +62,11 @@ passport.use(new SamlStrategy({ } if (needSave) { user.save().then(function () { - if (config.debug) { logger.debug('user login: ' + user.id) } + logger.debug(`user login: ${user.id}`) return done(null, user) }) } else { - if (config.debug) { logger.debug('user login: ' + user.id) } + logger.debug(`user login: ${user.id}`) return done(null, user) } } diff --git a/lib/web/auth/twitter/index.js b/lib/web/auth/twitter/index.js index c1860d93..5aba20ff 100644 --- a/lib/web/auth/twitter/index.js +++ b/lib/web/auth/twitter/index.js @@ -5,7 +5,7 @@ const passport = require('passport') const TwitterStrategy = require('passport-twitter').Strategy const config = require('../../../config') -const {setReturnToFromReferer, passportGeneralCallback} = require('../utils') +const { setReturnToFromReferer, passportGeneralCallback } = require('../utils') let twitterAuth = module.exports = Router() diff --git a/lib/web/auth/utils.js b/lib/web/auth/utils.js index ff7a1237..141a0d6f 100644 --- a/lib/web/auth/utils.js +++ b/lib/web/auth/utils.js @@ -1,7 +1,6 @@ 'use strict' const models = require('../../models') -const config = require('../../config') const logger = require('../../logger') exports.setReturnToFromReferer = function setReturnToFromReferer (req) { @@ -38,11 +37,11 @@ exports.passportGeneralCallback = function callback (accessToken, refreshToken, } if (needSave) { user.save().then(function () { - if (config.debug) { logger.info('user login: ' + user.id) } + logger.debug(`user login: ${user.id}`) return done(null, user) }) } else { - if (config.debug) { logger.info('user login: ' + user.id) } + logger.debug(`user login: ${user.id}`) return done(null, user) } } diff --git a/lib/web/historyRouter.js b/lib/web/historyRouter.js index 1b22c232..fa426bbb 100644 --- a/lib/web/historyRouter.js +++ b/lib/web/historyRouter.js @@ -2,7 +2,7 @@ const Router = require('express').Router -const {urlencodedParser} = require('./utils') +const { urlencodedParser } = require('./utils') const history = require('../history') const historyRouter = module.exports = Router() diff --git a/lib/web/imageRouter/azure.js b/lib/web/imageRouter/azure.js index cc98e5fc..22ee5585 100644 --- a/lib/web/imageRouter/azure.js +++ b/lib/web/imageRouter/azure.js @@ -7,13 +7,13 @@ const logger = require('../../logger') const azure = require('azure-storage') exports.uploadImage = function (imagePath, callback) { - if (!imagePath || typeof imagePath !== 'string') { - callback(new Error('Image path is missing or wrong'), null) + if (!callback || typeof callback !== 'function') { + logger.error('Callback has to be a function') return } - if (!callback || typeof callback !== 'function') { - logger.error('Callback has to be a function') + if (!imagePath || typeof imagePath !== 'string') { + callback(new Error('Image path is missing or wrong'), null) return } diff --git a/lib/web/imageRouter/filesystem.js b/lib/web/imageRouter/filesystem.js index 7c876d66..3ba09e88 100644 --- a/lib/web/imageRouter/filesystem.js +++ b/lib/web/imageRouter/filesystem.js @@ -6,13 +6,13 @@ const config = require('../../config') const logger = require('../../logger') exports.uploadImage = function (imagePath, callback) { - if (!imagePath || typeof imagePath !== 'string') { - callback(new Error('Image path is missing or wrong'), null) + if (!callback || typeof callback !== 'function') { + logger.error('Callback has to be a function') return } - if (!callback || typeof callback !== 'function') { - logger.error('Callback has to be a function') + if (!imagePath || typeof imagePath !== 'string') { + callback(new Error('Image path is missing or wrong'), null) return } diff --git a/lib/web/imageRouter/imgur.js b/lib/web/imageRouter/imgur.js index 2a20002c..dcb03a7a 100644 --- a/lib/web/imageRouter/imgur.js +++ b/lib/web/imageRouter/imgur.js @@ -5,24 +5,22 @@ const logger = require('../../logger') const imgur = require('imgur') exports.uploadImage = function (imagePath, callback) { - if (!imagePath || typeof imagePath !== 'string') { - callback(new Error('Image path is missing or wrong'), null) + if (!callback || typeof callback !== 'function') { + logger.error('Callback has to be a function') return } - if (!callback || typeof callback !== 'function') { - logger.error('Callback has to be a function') + if (!imagePath || typeof imagePath !== 'string') { + callback(new Error('Image path is missing or wrong'), null) return } imgur.setClientId(config.imgur.clientID) imgur.uploadFile(imagePath) - .then(function (json) { - if (config.debug) { - logger.info('SERVER uploadimage success: ' + JSON.stringify(json)) - } - callback(null, json.data.link.replace(/^http:\/\//i, 'https://')) - }).catch(function (err) { - callback(new Error(err), null) - }) + .then(function (json) { + logger.debug(`SERVER uploadimage success: ${JSON.stringify(json)}`) + callback(null, json.data.link.replace(/^http:\/\//i, 'https://')) + }).catch(function (err) { + callback(new Error(err), null) + }) } diff --git a/lib/web/imageRouter/index.js b/lib/web/imageRouter/index.js index f3c2decf..0b59218b 100644 --- a/lib/web/imageRouter/index.js +++ b/lib/web/imageRouter/index.js @@ -21,18 +21,19 @@ imageRouter.post('/uploadimage', function (req, res) { form.parse(req, function (err, fields, files) { if (err || !files.image || !files.image.path) { + logger.error(`formidable error: ${err}`) response.errorForbidden(res) } else { - if (config.debug) { - logger.info('SERVER received uploadimage: ' + JSON.stringify(files.image)) - } + logger.debug(`SERVER received uploadimage: ${JSON.stringify(files.image)}`) const uploadProvider = require('./' + config.imageUploadType) + logger.debug(`imageRouter: Uploading ${files.image.path} using ${config.imageUploadType}`) uploadProvider.uploadImage(files.image.path, function (err, url) { if (err !== null) { logger.error(err) return res.status(500).end('upload image error') } + logger.debug(`SERVER sending ${url} to client`) res.send({ link: url }) diff --git a/lib/web/imageRouter/lutim.js b/lib/web/imageRouter/lutim.js new file mode 100644 index 00000000..61930ad6 --- /dev/null +++ b/lib/web/imageRouter/lutim.js @@ -0,0 +1,30 @@ +'use strict' +const config = require('../../config') +const logger = require('../../logger') + +const lutim = require('lutim') + +exports.uploadImage = function (imagePath, callback) { + if (!callback || typeof callback !== 'function') { + logger.error('Callback has to be a function') + return + } + + if (!imagePath || typeof imagePath !== 'string') { + callback(new Error('Image path is missing or wrong'), null) + return + } + + if (config.lutim && config.lutim.url) { + lutim.setAPIUrl(config.lutim.url) + logger.debug(`Set lutim URL to ${lutim.getApiUrl()}`) + } + + lutim.uploadImage(imagePath) + .then(function (json) { + logger.debug(`SERVER uploadimage success: ${JSON.stringify(json)}`) + callback(null, lutim.getAPIUrl() + json.msg.short) + }).catch(function (err) { + callback(new Error(err), null) + }) +} diff --git a/lib/web/imageRouter/minio.js b/lib/web/imageRouter/minio.js index b921c2d2..fe43f76f 100644 --- a/lib/web/imageRouter/minio.js +++ b/lib/web/imageRouter/minio.js @@ -3,7 +3,7 @@ const fs = require('fs') const path = require('path') const config = require('../../config') -const {getImageMimeType} = require('../../utils') +const { getImageMimeType } = require('../../utils') const logger = require('../../logger') const Minio = require('minio') @@ -40,7 +40,9 @@ exports.uploadImage = function (imagePath, callback) { callback(new Error(err), null) return } - callback(null, `${protocol}://${config.minio.endPoint}:${config.minio.port}/${config.s3bucket}/${key}`) + let hidePort = [80, 443].includes(config.minio.port) + let urlPort = hidePort ? '' : `:${config.minio.port}` + callback(null, `${protocol}://${config.minio.endPoint}${urlPort}/${config.s3bucket}/${key}`) }) }) } diff --git a/lib/web/imageRouter/s3.js b/lib/web/imageRouter/s3.js index f2a5a5df..2bf08cc7 100644 --- a/lib/web/imageRouter/s3.js +++ b/lib/web/imageRouter/s3.js @@ -3,7 +3,7 @@ const fs = require('fs') const path = require('path') const config = require('../../config') -const {getImageMimeType} = require('../../utils') +const { getImageMimeType } = require('../../utils') const logger = require('../../logger') const AWS = require('aws-sdk') @@ -35,6 +35,7 @@ exports.uploadImage = function (imagePath, callback) { const mimeType = getImageMimeType(imagePath) if (mimeType) { params.ContentType = mimeType } + logger.debug(`S3 object parameters: ${JSON.stringify(params)}`) s3.putObject(params, function (err, data) { if (err) { callback(new Error(err), null) diff --git a/lib/web/middleware/tooBusy.js b/lib/web/middleware/tooBusy.js index f1b72330..49efbe37 100644 --- a/lib/web/middleware/tooBusy.js +++ b/lib/web/middleware/tooBusy.js @@ -3,6 +3,9 @@ const toobusy = require('toobusy-js') const response = require('../../response') +const config = require('../../config') + +toobusy.maxLag(config.tooBusyLag) module.exports = function (req, res, next) { if (toobusy()) { diff --git a/lib/web/noteRouter.js b/lib/web/noteRouter.js index 41bf5f73..bac2cf88 100644 --- a/lib/web/noteRouter.js +++ b/lib/web/noteRouter.js @@ -4,7 +4,7 @@ const Router = require('express').Router const response = require('../response') -const {markdownParser} = require('./utils') +const { markdownParser } = require('./utils') const noteRouter = module.exports = Router() diff --git a/lib/web/statusRouter.js b/lib/web/statusRouter.js index 2b9cb65f..da69e62c 100644 --- a/lib/web/statusRouter.js +++ b/lib/web/statusRouter.js @@ -8,7 +8,7 @@ const config = require('../config') const models = require('../models') const logger = require('../logger') -const {urlencodedParser} = require('./utils') +const { urlencodedParser } = require('./utils') const statusRouter = module.exports = Router() @@ -68,9 +68,7 @@ statusRouter.post('/temp', urlencodedParser, function (req, res) { if (!data) { response.errorForbidden(res) } else { - if (config.debug) { - logger.info('SERVER received temp from [' + host + ']: ' + req.body.data) - } + logger.debug(`SERVER received temp from [${host}]: ${req.body.data}`) models.Temp.create({ data: data }).then(function (temp) { diff --git a/lib/web/userRouter.js b/lib/web/userRouter.js index ca364422..73b519ec 100644 --- a/lib/web/userRouter.js +++ b/lib/web/userRouter.js @@ -8,7 +8,7 @@ const response = require('../response') const config = require('../config') const models = require('../models') const logger = require('../logger') -const {generateAvatar} = require('../letter-avatars') +const { generateAvatar } = require('../letter-avatars') const UserRouter = module.exports = Router() |