diff --git a/backend/app.js b/backend/app.js index bcd24ae..0dc80bf 100644 --- a/backend/app.js +++ b/backend/app.js @@ -1764,7 +1764,7 @@ const optionalJwt = function (req, res, next) { const type = using_body ? req.body.type : req.query.type; const is_shared = auth_api.getUserVideo(uuid, uid, type, true); if (is_shared) return next(); - } else if (multiUserMode) { + } else if (multiUserMode && !(req.path.includes('/api/auth/register') && !req.query.jwt)) { // registration should get passed through if (!req.query.jwt) { res.sendStatus(401); return; @@ -2744,6 +2744,7 @@ app.get('/api/audio/:id', optionalJwt, function(req , res){ // user authentication app.post('/api/auth/register' + , optionalJwt , auth_api.registerUser); app.post('/api/auth/login' , auth_api.passport.authenticate('local', {}) diff --git a/backend/authentication/auth.js b/backend/authentication/auth.js index 6315255..aabb978 100644 --- a/backend/authentication/auth.js +++ b/backend/authentication/auth.js @@ -82,7 +82,7 @@ exports.registerUser = function(req, res) { var username = req.body.username; var plaintextPassword = req.body.password; - if (userid !== 'admin' && !config_api.getConfigItem('ytdl_allow_registration')) { + if (userid !== 'admin' && !config_api.getConfigItem('ytdl_allow_registration') && !req.isAuthenticated() && (!req.user || !exports.userHasPermission(req.user.uid, 'settings'))) { res.sendStatus(409); logger.error(`Registration failed for user ${userid}. Registration is disabled.`); return;