A minimalistic OpenLDAP admin frontend for managing users and groups.
Go to file
2022-11-29 17:14:39 +01:00
lumi2 feat(webapi): implement Group resource endpoints 2022-11-29 17:14:39 +01:00
tests feat(tests): add functions used to randomly generate users 2022-11-29 14:22:22 +01:00
.gitignore feat: add base files 2022-11-07 22:17:05 +01:00
docker-compose.yml feat(tests): add functions used to randomly generate users 2022-11-29 14:22:22 +01:00
Dockerfile feat: add base files 2022-11-07 22:17:05 +01:00
pytest.ini feat(tests): add pytest and write unit tests 2022-11-09 14:45:47 +01:00
README.md docs(readme): update links 2022-11-21 17:34:01 +01:00
requirements.txt feat(tests): add functions used to randomly generate users 2022-11-29 14:22:22 +01:00

Lumi2 (LDAP user management interface)

Lumi2 is a web application for managing users and user groups present on an OpenLDAP server. It provides a web-interface for administrators to create/read/update/delete organization users and user groups, and to allow basic account self-service for organization members themselves. Lumi is written in Python, using the Flask web framework.

The motivation for Lumi is for it to provide a more user-friendly interface than PhpLdapAdmin, however it is not a replacement.

Documentation

The following frameworks and/or libraries are used:

  • Backend:
    • Flask - a python web framework
      • WTForms - a python library for web form handling
      • FlaskWTF - an extension to WTForms specific to Flask
      • flask-restful - a minimalistic library for Flask to build RESTful web APIs
    • ldap3 - python bindings for interaction with LDAP servers
    • pytest - a python testing framework
    • coverage - test code coverage reporting used in conjunction with pytest
    • Pillow - a python image manipulation library
  • Frontend:

Testing

Make sure all dependencies listed in requirements.txt are installed. To run all unit tests, simply run the following from within the repository root:

coverage run -m pytest && coverage report

This will run all unit tests and display the test coverage in your terminal.