E.W.O. Next / All files / src/server auth.ts

0% Statements 0/25
0% Branches 0/18
0% Functions 0/5
0% Lines 0/24

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54                                                                                                           
/**
 * @module Server.Express.Auth
 * ExpressJS Auth Middlewares
 */
 
import { UsersTools } from '@engine/Users/UsersTools';
import { User } from '@models';
import crypto = require('crypto');
 
export const checkSignIn = (req, res, next) => {
 
  if (req.session && req.session.user) {
    next();
  } else {
    req.session.error = 'Not logged in!';
    res.redirect('/users/login');
  }
};
 
export const checkCharIsOwnedRest = (req, res, next) => {
 
  if (req.params.mat) {
 
    if (!req.session.charOwned) {
      const user: User = req.session.user;
      req.session.charOwned = UsersTools.ownedChar(req.reduxStore, user);
    }
 
    if (req.session.charOwned.includes(Number(req.params.mat))) {
      next();
    } else {
      res.status(403).json({ error: 'not logged in' });
    }
  }
};
 
export const checkSignInRest = (req, res, next) => {
  if (req.session && req.session.user) {
    next();
  } else {
    res.status(403).json({ error: 'not logged in' });
  }
};
 
export const checkAnon = (req, res, next) => {
  if (req.session && req.session.user) {
    res.redirect('/');
  } else {
    next();
  }
};
 
export const hash = password => crypto.pbkdf2Sync(password, 'salt', 1, 32, 'sha512').toString('hex');