Old partial attempt at "public mode"

This commit is contained in:
Wingy 2020-10-29 11:24:13 -04:00
parent f872785e64
commit 8f6b030ca8
6 changed files with 37 additions and 18 deletions

11
middlewares/public.js Normal file
View file

@ -0,0 +1,11 @@
const verifyAuth = require('./verifyAuth')
const middlewareNoop = ( (_1, _2, next) => next() )
const publicMiddleware = () => process.env.LISTS_PUBLIC === 'true' ?
(req, res, next) => {
if (!req.user) req.user = { _id: 'Unknown' }
next()
}
: verifyAuth()
module.exports = publicMiddleware

View file

@ -1,4 +1,5 @@
const verifyAuth = require('../middlewares/verifyAuth'); const verifyAuth = require('../middlewares/verifyAuth');
const public = require('../middlewares/public');
const express = require('express'); const express = require('express');
const path = require('path'); const path = require('path');
@ -16,7 +17,7 @@ module.exports = ({ db, config }) => {
next(); next();
} }
}, },
verifyAuth(), public(),
(req, res) => { (req, res) => {
res.redirect('/wishlist'); res.redirect('/wishlist');
} }

View file

@ -1,4 +1,5 @@
const verifyAuth = require('../../middlewares/verifyAuth'); const verifyAuth = require('../../middlewares/verifyAuth');
const public = require('../../middlewares/public');
const getProductName = require('get-product-name'); const getProductName = require('get-product-name');
const express = require('express'); const express = require('express');
const config = require('../../config'); const config = require('../../config');
@ -29,7 +30,7 @@ const ValidURL = (string) => { // Ty SO
module.exports = (db) => { module.exports = (db) => {
const router = express.Router(); const router = express.Router();
router.get('/', verifyAuth(), async (req, res) => { router.get('/', public(), async (req, res) => {
const docs = await db.allDocs({ include_docs: true }) const docs = await db.allDocs({ include_docs: true })
if (process.env.SINGLE_LIST === 'true') { if (process.env.SINGLE_LIST === 'true') {
for (row of docs.rows) { for (row of docs.rows) {
@ -39,7 +40,7 @@ module.exports = (db) => {
res.render('wishlists', { title: 'Wishlists', users: docs.rows, totals}) res.render('wishlists', { title: 'Wishlists', users: docs.rows, totals})
}); });
router.get('/:user', verifyAuth(), async (req, res) => { router.get('/:user', public(), async (req, res) => {
try { try {
const dbUser = await db.get(req.params.user); const dbUser = await db.get(req.params.user);
if (process.env.SINGLE_LIST === 'true') { if (process.env.SINGLE_LIST === 'true') {

View file

@ -23,13 +23,17 @@ nav.navbar.is-fixed-top(role='navigation', aria-label='main navigation',style='b
.navbar-item.has-dropdown.is-hoverable .navbar-item.has-dropdown.is-hoverable
a.navbar-link= req.user._id a.navbar-link= req.user._id
.navbar-dropdown .navbar-dropdown
+navBarLink(`/wishlist/${req.user._id}`, 'My Wishlist') if req.user._id === 'Unknown'
+navBarLink('/profile', 'Profile') .navbar-item
if req.user.admin a.button.is-primary(href='/login') Log In
+navBarLink('/admin-settings', 'Admin settings') else
hr.navbar-divider +navBarLink(`/wishlist/${req.user._id}`, 'My Wishlist')
.navbar-item +navBarLink('/profile', 'Profile')
form#logoutForm(action='/logout', method='POST') if req.user.admin
button.button.is-warning(type='submit') Log Out +navBarLink('/admin-settings', 'Admin settings')
hr.navbar-divider
.navbar-item
form#logoutForm(action='/logout', method='POST')
button.button.is-warning(type='submit') Log Out
//-+navBarLink('javascript:document.getElementById("logoutForm").submit()', 'Log Out') //-+navBarLink('javascript:document.getElementById("logoutForm").submit()', 'Log Out')
script(src="/js/nav.js") script(src="/js/nav.js")

View file

@ -12,7 +12,8 @@ block title
span #{config.siteTitle} - #{title} span #{config.siteTitle} - #{title}
block content block content
script(type='data/user_id')= req.user._id if req.user
script(type='data/user_id')= req.user._id
if process.env.TABLE !== 'false' if process.env.TABLE !== 'false'
.box .box
table.table.has-mobile-cards table.table.has-mobile-cards

View file

@ -2,12 +2,13 @@ extends layout.pug
block content block content
ul.noStyle.noLeftMargin ul.noStyle.noLeftMargin
li if req.user._id !== 'Unknown'
a(href=`/wishlist/${req.user._id}`) li
.box a(href=`/wishlist/${req.user._id}`)
span=req.user._id .box
span : ???/??? span=req.user._id
progress.progress(value=1, max=1) span : ???/???
progress.progress(value=1, max=1)
each user in users each user in users
if req.user._id !== user.id if req.user._id !== user.id
li li