55 lines
957 B
JavaScript
55 lines
957 B
JavaScript
function createHttpError(status, message) {
|
|
const error = new Error(message);
|
|
error.status = status;
|
|
return error;
|
|
}
|
|
|
|
function getAuthenticatedUser(req) {
|
|
const user = String(
|
|
req.user?.name || '',
|
|
).trim();
|
|
|
|
if (!user) {
|
|
throw createHttpError(
|
|
401,
|
|
'Utente autenticato non disponibile',
|
|
);
|
|
}
|
|
|
|
return user;
|
|
}
|
|
|
|
function isFaceReviewAdmin(req) {
|
|
return getAuthenticatedUser(req) === 'Admin';
|
|
}
|
|
|
|
function resolveFaceReviewUser(req) {
|
|
const authenticatedUser =
|
|
getAuthenticatedUser(req);
|
|
|
|
const requestedUser = String(
|
|
req.query?.user
|
|
?? req.body?.user
|
|
?? '',
|
|
).trim();
|
|
|
|
if (!requestedUser) {
|
|
return authenticatedUser;
|
|
}
|
|
|
|
if (!isFaceReviewAdmin(req)) {
|
|
throw createHttpError(
|
|
403,
|
|
'Selezione utente non autorizzata',
|
|
);
|
|
}
|
|
|
|
return requestedUser;
|
|
}
|
|
|
|
module.exports = {
|
|
createHttpError,
|
|
getAuthenticatedUser,
|
|
isFaceReviewAdmin,
|
|
resolveFaceReviewUser,
|
|
};
|