const { Controller } = require('libflitter') class GroupsController extends Controller { static get services() { return [...super.services, 'cobalt', 'models'] } async get_listing(req, res, next) { const Group = this.models.get('ldap:Group') const groups = await Group.find() const formatted = groups.map(x => { return { name: x.name, count: x.user_ids.length, } }) return this.cobalt.listing(req, res, { title: 'LDAP Groups', // TODO generalize this for SAML/OAuth2 columns: [ { name: 'Group Name', field: 'name', }, { name: '# Users', field: 'count', }, ], data: formatted, }) } } module.exports = exports = GroupsController