@varun-ganesh-d Thank you for the information!
Solved Redirect to login
-
I also tried to use the helper function notAllowed, but I get the same result. Redirects to
/login
but get errors in the log that data is undefined and there is nocatch()
.library.checkLoginStatus = async (data) => { if (data.req.loggedIn || allowedUrls(data.req.url) ) { return data; } return Helpers.notAllowed(data.req, data.res); };
-
Maybe
'response:router.page'
is better then, it won't call next if you already do a redirect in it.https://github.com/NodeBB/NodeBB/blob/master/src/middleware/index.js#L94-L101
-
@baris That's it. Worked like a charm. Thanks!
-
Hello @baris and @magnusvhendin
I would like to update my module nodebb-plugin-private-forum that should do exactly what you are trying to archive.
But it seems it is not working well with v1.16.2 and I need some help on the Hook declaration.I understand that I need to use
response:router.page
, but how exactly?
Is this ok for you?plugin.json
{ "id": "nodebb-plugin-private-forum", "url": "https://github.com/LM1LC3N7/nodebb-plugin-private-forum", "library": "./library.js", "hooks": [{ "hook": "response:router.page", "method": "init" }] }
library.json
'use strict'; const plugin = {}; var winston = module.parent.require('winston'); const helpers = require.main.require('./src/controllers/helpers'); plugin.init = async (data) => { const allowedPages = /\/(assets\/|login|register|reset|plugins\/).*|.*(.css|.js)$/; winston.verbose("[plugin-nodebb-private-forum] Checking URL ("+ req.url +"), redirection."); # Allow only few pages or logged in users if (data.req.loggedIn || allowedPages.test(req.url)) { return data; } # else redirect to /login. winston.verbose("[plugin-nodebb-private-forum] User is NOT logged or URL is NOT allowed."); return Helpers.notAllowed(data.req, data.res); }; module.exports = plugin;
I can't see any of the debug log messages containing accessed URL
-
Trying logging with winston.info, verbose only shows up in dev mode or when you start with --verbose I believe.
-
@baris After a rebuild, reset module and activate again, still nothing.
I have manually changed the package.json version number but the old version still appears. An idea why? My updates are maybe never used? -
Maker sure your plugin is linked into node_modules. If it's not your changes won't show up.
-
@baris infact I have installed the old version and I update the installed module directly (in node_modules folder).
I rebuild and restart nodebb, but the plugin version is still the old one.
Does my plugin file code looks ok to you?
-
Javascript comments start with
//
or/* comment */
. During startup if there is an error in a plugin it is not loaded. Check the startup messages. -
@baris My god, it's not good to work with bash and javascript at the same time (thank you btw)
My "old" code is still working well without depreciation warning, thanks for your answers