Profile Pictures!
This commit is contained in:
parent
8e79266da4
commit
5ac965eac4
19 changed files with 103 additions and 32 deletions
|
@ -11,7 +11,7 @@ const SECRET_TOKEN_LIFETIME =
|
|||
24 * // hours
|
||||
7 // days
|
||||
|
||||
module.exports = (db) => {
|
||||
module.exports = ({ db, ensurePfp }) => {
|
||||
const router = express.Router()
|
||||
|
||||
router.get('/', verifyAuth(), (req, res) => {
|
||||
|
@ -25,15 +25,16 @@ module.exports = (db) => {
|
|||
|
||||
router.post('/add', verifyAuth(), async (req, res) => {
|
||||
if (!req.user.admin) return res.redirect('/')
|
||||
const username = req.body.newUserUsername.trim()
|
||||
await db.put({
|
||||
_id: req.body.newUserUsername.trim(),
|
||||
_id: username,
|
||||
admin: false,
|
||||
wishlist: [],
|
||||
|
||||
signupToken: nanoid(SECRET_TOKEN_LENGTH),
|
||||
expiry: new Date().getTime() + SECRET_TOKEN_LIFETIME
|
||||
|
||||
})
|
||||
await ensurePfp(username)
|
||||
res.redirect(`/admin-settings/edit/${req.body.newUserUsername.trim()}`)
|
||||
})
|
||||
|
||||
|
|
|
@ -1,8 +1,24 @@
|
|||
const publicRoute = require('../middlewares/publicRoute')
|
||||
const express = require('express')
|
||||
const path = require('path')
|
||||
const fs = require('fs/promises')
|
||||
|
||||
module.exports = ({ db, config }) => {
|
||||
async function ensurePfp (username) {
|
||||
const user = await db.get(username)
|
||||
console.log(user)
|
||||
if (user.pfp) return
|
||||
|
||||
const { rows } = await db.allDocs({ include_docs: true })
|
||||
|
||||
const unfilteredPool = await fs.readdir('static/img/default-pfps')
|
||||
const filteredPool = unfilteredPool.filter(file => !rows.find(row => row.doc.pfp === `${_CC.config.base}img/default-pfps/${file}`))
|
||||
const pool = filteredPool.length ? filteredPool : unfilteredPool
|
||||
|
||||
user.pfp = `${_CC.config.base}img/default-pfps/${_CC._.sample(pool)}`
|
||||
await db.put(user)
|
||||
}
|
||||
|
||||
const router = express.Router()
|
||||
|
||||
router.use('/', express.static(path.join(__dirname, '../static')))
|
||||
|
@ -26,7 +42,7 @@ module.exports = ({ db, config }) => {
|
|||
|
||||
router.use('/setup', require('./setup')(db))
|
||||
|
||||
router.use('/login', require('./login')())
|
||||
router.use('/login', require('./login')({ ensurePfp }))
|
||||
router.use('/logout', require('./logout')())
|
||||
router.use('/resetpw', require('./resetpw')(db))
|
||||
router.use('/confirm-account', require('./confirm-account')(db))
|
||||
|
@ -34,9 +50,9 @@ module.exports = ({ db, config }) => {
|
|||
router.use('/wishlist', require('./wishlist')(db))
|
||||
router.use('/supported-sites', require('./supported-sites')())
|
||||
|
||||
router.use('/profile', require('./profile')(db))
|
||||
router.use('/profile', require('./profile')({ db, ensurePfp }))
|
||||
|
||||
router.use('/admin-settings', require('./adminSettings')(db))
|
||||
router.use('/admin-settings', require('./adminSettings')({ db, ensurePfp }))
|
||||
|
||||
router.use('/manifest.json', require('./manifest.json')({ config }))
|
||||
|
||||
|
|
|
@ -2,10 +2,20 @@ const verifyAuth = require('../../middlewares/verifyAuth')
|
|||
const bcrypt = require('bcrypt-nodejs')
|
||||
const express = require('express')
|
||||
|
||||
module.exports = (db) => {
|
||||
module.exports = ({ db, ensurePfp }) => {
|
||||
const router = express.Router()
|
||||
|
||||
router.get('/', verifyAuth(), (req, res) => res.render('profile', { title: `Profile Settings - ${req.user._id}` }))
|
||||
router.get('/', verifyAuth(), async (req, res) => {
|
||||
await ensurePfp(req.user._id)
|
||||
res.render('profile', { title: `Profile Settings - ${req.user._id}` })
|
||||
})
|
||||
router.post('/pfp', verifyAuth(), async (req, res) => {
|
||||
req.user.pfp = req.body.image
|
||||
await db.put(req.user)
|
||||
if (!req.user.pfp) await ensurePfp(req.user._id)
|
||||
req.flash('success', 'Saved profile picture!')
|
||||
res.redirect(`${_CC.config.base}profile`)
|
||||
})
|
||||
router.post('/', verifyAuth(), (req, res) => {
|
||||
if (req.body.oldPassword && req.body.newPassword) {
|
||||
bcrypt.compare(req.body.oldPassword, req.user.password, (err, correct) => {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue