File size: 978 Bytes
f8b5d42 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
const {
BrowserExtensionApiKey,
} = require("../../models/browserExtensionApiKey");
const { SystemSettings } = require("../../models/systemSettings");
const { User } = require("../../models/user");
async function validBrowserExtensionApiKey(request, response, next) {
const multiUserMode = await SystemSettings.isMultiUserMode();
response.locals.multiUserMode = multiUserMode;
const auth = request.header("Authorization");
const bearerKey = auth ? auth.split(" ")[1] : null;
if (!bearerKey) {
response.status(403).json({
error: "No valid API key found.",
});
return;
}
const apiKey = await BrowserExtensionApiKey.validate(bearerKey);
if (!apiKey) {
response.status(403).json({
error: "No valid API key found.",
});
return;
}
if (multiUserMode) {
response.locals.user = await User.get({ id: apiKey.user_id });
}
response.locals.apiKey = apiKey;
next();
}
module.exports = { validBrowserExtensionApiKey };
|