LDAP authentication backend for pretix
Project description
LDAP authentication plugin for pretix.
Installation
You can install the plugin using
$ pip install pretix-ldap
You need to enable the plugin by including pretix_ldap.LDAPAuthBackend in the auth_backends option in your pretix.cfg (see https://docs.pretix.eu/en/latest/admin/config.html).
You also need to add a [ldap] section in your pretix.cfg to configure the connection to the ldap server.
Options are:
- bind_url
The url of the ldap server (required) Example: ldap://ldap.example.com
- bind_dn
The dn of the account to use to query the ldap server (required) Example: cn=readonly,dc=example,dc=com
- bind_password
The password of the account to use to query the ldap server (required) Example: changeme
- search_base
The search base (required) Example: ou=people,dc=example,dc=com
- search_filter
Filter to search for users. You can use placeholders in curly braces, which will get populated from form fields of the same name. Default: (&(objectClass=inetOrgPerson)(mail={email})) Example: (&(objectClass=inetOrgPerson)(memberOf=cn=pretix,ou=groups,dc=example,dc=com)(mail={email}))
- email_attr
The name of an attribute that can be used to retrieve the user’s email address Default: mail
- unique_attr
The name of a stable attribute that can be used to uniquely identify a user Default: dn Example: entryUUID
Example Deployment
An example deployment using docker-compose can be found in the example folder.
After running docker-compose up you should be able to log in at http://localhost:80/control using the email “admin@example.com” and password “password”.
Development setup
Make sure that you have a working pretix development setup.
Clone this repository, eg to local/pretix-ldap.
Activate the virtual environment you use for pretix development.
Execute python setup.py develop within this directory to register this application with pretix’s plugin registry.
Restart your local pretix server. You can now use the plugin from this repository for your events by enabling it in the ‘plugins’ tab in the settings.
Running CI linter and tests locally
Enter devshell: nix develop
Build package:
python -m build
Run linter:
flake8
Run tests:
cp -r dist tests cd tests pytest
License
Copyright 2019 sohalt
Released under the terms of the Apache License 2.0