@flowfuse/flowfuse
Version:
An open source low-code development platform
32 lines (31 loc) • 1.64 kB
JavaScript
module.exports = {
defaultPreHandler: async (app, request, reply) => {
if (request.params.deviceId !== undefined) {
if (request.params.deviceId) {
try {
// StorageFlow needed for last updates time (live status)
request.device = await app.db.models.Device.byId(request.params.deviceId, { includeStorageFlows: true })
if (!request.device) {
reply.code(404).send({ code: 'not_found', error: 'Not Found' })
return
}
if (request.session.User) {
request.teamMembership = await request.session.User.getTeamMembership(request.device.Team.id)
if (!request.teamMembership && !request.session.User.admin) {
reply.code(404).send({ code: 'not_found', error: 'Not Found' })
return // eslint-disable-line no-useless-return
}
} else if (request.session.ownerId !== request.params.deviceId) {
// AccesToken being used - but not owned by this project
reply.code(404).send({ code: 'not_found', error: 'Not Found' })
return // eslint-disable-line no-useless-return
}
} catch (err) {
reply.code(404).send({ code: 'not_found', error: 'Not Found' })
}
} else {
reply.code(404).send({ code: 'not_found', error: 'Not Found' })
}
}
}
}