Created middleware to check if the user has a plex user linked to seasoned account. If not respond with 403 meaning you did have a authorization key, but this is forbidden; explaining in the response message that no plex account user id was found for this user and to please authenticate their plex account at authenticate endpoint.
This commit is contained in:
@@ -4,6 +4,7 @@ const bodyParser = require('body-parser');
|
||||
const tokenToUser = require('./middleware/tokenToUser');
|
||||
const mustBeAuthenticated = require('./middleware/mustBeAuthenticated');
|
||||
const mustBeAdmin = require('./middleware/mustBeAdmin');
|
||||
const mustHaveAccountLinkedToPlex = require('./middleware/mustHaveAccountLinkedToPlex');
|
||||
const configuration = require('src/config/configuration').getInstance();
|
||||
|
||||
const listController = require('./controllers/list/listController');
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
const establishedDatabase = require('src/database/database');
|
||||
|
||||
const mustHaveAccountLinkedToPlex = (req, res, next) => {
|
||||
let database = establishedDatabase;
|
||||
const loggedInUser = req.loggedInUser;
|
||||
|
||||
if (loggedInUser === undefined) {
|
||||
return res.status(401).send({
|
||||
success: false,
|
||||
message: 'You must be logged in.',
|
||||
});
|
||||
} else {
|
||||
database.get(`SELECT plex_userid FROM user WHERE user_name IS ?`, loggedInUser.username)
|
||||
.then(row => {
|
||||
const plex_userid = row.plex_userid;
|
||||
|
||||
if (plex_userid === null || plex_userid === undefined) {
|
||||
return res.status(403).send({
|
||||
success: false,
|
||||
message: 'No plex account user id found for your user. Please authenticate your plex account at /user/authenticate.'
|
||||
})
|
||||
} else {
|
||||
req.loggedInUser.plex_userid = plex_userid;
|
||||
return next();
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
module.exports = mustHaveAccountLinkedToPlex;
|
||||
Reference in New Issue
Block a user