| 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 }; |
|
|