/* * GET home page. */ import express = require('express'); import RouterUtils from '../src/RouterUtils'; import Security from '../src/Security'; import { ILDAPManager } from './../src/ldapInterface'; const route_login = express.Router(); const route_logout = express.Router(); function ManageLogin(req: express.Request, res: express.Response, ldap: ILDAPManager|null, postData: { username: string, password: string }|null) { let session = Security.GetOrCreateSession(req); if (session.IsLoggedIn()) { RouterUtils.Redirect(res, "/"); return; } let prevUsername = session.GetPreviousUsername() || ""; if (postData && postData.username && postData.password && postData.username.length && postData.password.length && ldap) { prevUsername = postData.username; Security.TryLogin(ldap, postData.username, postData.password).then(user => { if (user) { session.Login(user, postData.username); RouterUtils.Redirect(res, "/"); return; } res.render('login', { previousUsername: prevUsername, loginFail: true }); }).catch(() => { res.render('login', { previousUsername: prevUsername, loginFail: true }); }); } else { res.render('login', { previousUsername: prevUsername, loginFail: false }); } } route_login.get('/', (req: express.Request, res: express.Response) => { ManageLogin(req, res, null, null); }); route_login.post('/', (req: express.Request, res: express.Response) => { req.ldapManager.GetInstance().then(ldap => { ManageLogin(req, res, ldap, { username: req.body.username, password: req.body.password }); }); }); route_logout.get('/', (req: express.Request, res: express.Response) => { Security.GetSession(req)?.Logout(); res.clearCookie("sessId"); RouterUtils.Redirect(res, "/"); }); export { route_login }; export { route_logout };