Skip to main content

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

  1. Make sure that you have a working pretix development setup.
  2. Clone this repository, eg to local/pretix-ldap.
  3. Activate the virtual environment you use for pretix development.
  4. Execute python setup.py develop within this directory to register this application with pretix’s plugin registry.
  5. 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

  1. Set up docker

  2. Install test dependencies: pip install -r src/tests/requirements.txt

  3. Run linter:

    cd src/
    flake8
    
  4. Run tests:

    cd src/tests
    pytest
    

License

Copyright 2019 sohalt

Released under the terms of the Apache License 2.0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pretix-ldap-0.1.2.tar.gz (4.1 kB view hashes)

Uploaded source

Built Distribution

pretix_ldap-0.1.2-py3-none-any.whl (4.6 kB view hashes)

Uploaded py3

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page