index.ts 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. /*
  2. * GET users listing.
  3. */
  4. import express = require('express');
  5. const router = express.Router();
  6. import Security from '../src/Security';
  7. import { ILDAPManager } from '../src/ldapInterface';
  8. import LDAPEntry from '../src/LDAPEntry';
  9. import ConfigManager, { LDAPAttribute, LDAPCategory } from '../src/ConfigLoader';
  10. function GetCurrentCategory(req: express.Request, defaultResult: LDAPCategory): LDAPCategory|null {
  11. if (!req.query["category"])
  12. return null;
  13. let query = Array.isArray(req.query["category"]) ? req.query["category"][0] : req.query["category"];
  14. return LinkToCategory(query.toString()) || defaultResult;
  15. }
  16. function LinkToCategory(query: string): LDAPCategory | null {
  17. return ConfigManager.GetInstance().GetCategoryByName(decodeURIComponent(query));
  18. }
  19. function CategoryToLink(category: LDAPCategory): string {
  20. return encodeURIComponent(category.GetName());
  21. }
  22. function DnToLink(dn: string): string {
  23. return encodeURIComponent(dn);
  24. }
  25. router.get('/', (req: express.Request, res: express.Response) => {
  26. if (!Security.requireLoggedUser(req, res))
  27. return;
  28. req.ldapManager.GetInstance().then(ldap => ldap.GetTree()).then(root => {
  29. res.render("index", {
  30. tree: root.GetChildren()[0],
  31. DnToLnk: DnToLink
  32. });
  33. });
  34. });
  35. router.get('/home', (req, res) => {
  36. if (!Security.requireLoggedUser(req, res))
  37. return;
  38. res.send("Hello, world");
  39. });
  40. export default router;