123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- const async = require("async");
- const cache = require("../../cache");
- const utils = require("../../utils");
- // const logger = moduleManager.modules["logger"];
- module.exports = function(next) {
- return function(session) {
- let args = [];
- for (let prop in arguments) args.push(arguments[prop]);
- let cb = args[args.length - 1];
- async.waterfall(
- [
- (next) => {
- cache
- .runJob("HGET", {
- table: "sessions",
- key: session.sessionId,
- })
- .then((session) => next(null, session))
- .catch(next);
- },
- (session, next) => {
- if (!session || !session.userId)
- return next("Login required.");
- this.session = session;
- next();
- },
- ],
- async (err) => {
- if (err) {
- err = await utils.runJob("GET_ERROR", { error: err });
- console.log(
- "LOGIN_REQUIRED",
- `User failed to pass login required check.`
- );
- return cb({ status: "failure", message: err });
- }
- console.log(
- "LOGIN_REQUIRED",
- `User "${session.userId}" passed login required check.`,
- false
- );
- next.apply(null, args);
- }
- );
- };
- };
|