| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- /*
- * 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) {
- if (req.isUserLogged)
- return RouterUtils.Redirect(res, "/");
- let session = Security.GetOrCreateSession(req);
- 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 };
|