Files
noisedash/server/routes/auth.js
2022-07-12 16:34:42 -07:00

65 lines
1.3 KiB
JavaScript

const express = require('express')
const passport = require('passport')
const db = require('../db')
const router = express.Router()
const logger = require('../logger')
router.post('/login/password', passport.authenticate('local'), (req, res, next) => {
return res.send('Authenticated and logged in')
})
router.get('/auth', (req, res) => {
if (req.user) {
res.sendStatus(200)
} else {
res.sendStatus(401)
}
})
router.get('/admin', (req, res) => {
if (!req.user) {
return res.sendStatus(401)
}
db.get('SELECT is_admin FROM users WHERE id = ?', [req.user.id], (err, row) => {
if (err) {
logger.error(err)
return res.sendStatus(500)
}
if (row.is_admin === 0) {
res.sendStatus(401)
} else {
res.sendStatus(200)
}
})
})
router.get('/logout', (req, res) => {
req.logout((err) => {
if (err) {
logger.error(err)
res.sendStatus(500)
} else {
res.sendStatus(200)
}
})
})
router.get('/setup', (req, res) => {
db.get('SELECT COUNT(*) as count FROM users', (err, row) => {
if (err) {
logger.error(err)
return res.sendStatus(500)
}
if (row.count === 0) {
return res.json({ setup: true })
} else {
return res.json({ setup: false })
}
})
})
module.exports = router