import express from 'express'; import { DataTypes } from 'sequelize'; import defineLdapSetting from '../../models/ldapSettings.js'; import authMiddleware from '../../middleware/auth.js'; import { getLdapSettings } from './ldapClient.js'; const router = express.Router(); // Never expose the stored bind password. Report only whether one is set. function serialize(settings) { const json = settings.toJSON(); json.bindCredentialsSet = Boolean(json.bindCredentials); json.bindCredentials = ''; return json; } export default function (sequelize) { const { verifySignedIn, verifyAdmin } = authMiddleware(sequelize); const LdapSetting = defineLdapSetting(sequelize, DataTypes); router.get('/', verifySignedIn, verifyAdmin, async (req, res) => { try { const settings = await getLdapSettings(LdapSetting); res.json(serialize(settings)); } catch (error) { console.error(error); res.status(500).send('Internal Server Error'); } }); return router; } export { serialize };