Blinkenbunt Account Manager
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
klonfish 31cbf7be0f Avoid LDAP sync on irrelevant changes 6 years ago
bam Avoid LDAP sync on irrelevant changes 6 years ago
.gitignore abolish separate subfolder for pure.css 6 years ago
README.md add setup.py based on example from Django docs 6 years ago
setup.py add setup.py based on example from Django docs 6 years ago

README.md

bam - Blinkenbunt Account Manager

Installation

Currently, this repository does only contain a plain Django app without a project. The app is not (yet) packaged. Therfore, the following steps are necessary to initialize a development environment:

  1. Initialize Django project:

django-admin startproject PROJECT_NAME


  2. Clone this repository to a location outside the project directory.

  3. Below the project directory, create a symlink called `bam` to the `bam`
     folder of this repository, e.g.:

     ```
ln -sr bam PROJECT_DIRECTORY/bam
  1. Add bam.apps.BamConfig to INSTALLED_APPS in the project's settings.py.

  2. Set bam.hashers.LDAPPBKDF2PasswordHasher as the first item of the PASSWORD_HASHERS array in the project's settings.py.

  3. Insert the configuration values described below according to your setup into the project's settings.py.

  4. Append path('', include('bam.urls')), to the project's urls.py.

  5. Initialize database:

./manage.py migrate


  9. Create a superuser account:

     ```
./manage.py createsuperuser
  1. Download Pure.css to bam/static/pure-min.css.

  2. Start the development server:

 ```

./manage.py runserver


## Configuration Options

  * `BAM_LDAP_URI`: URI of the LDAP server to connect to. For a server on the
    same system, `ldapi:///` usually can be used.

  * `BAM_LDAP_BIND_DN`: The DN to bind to. It requires permissions to create
    and change entries in the relevant base DNs.

  * `BAM_LDAP_SECRET`: The secret corresponding to the bind DN.

  * `BAM_LDAP_BASE_DN_MAP`: A dict from base DNs to arrays of Django groups.

    User entries are maintained in the given base DN for all active members of
    at least one of the assigned groups. They get deleted if the corresponding
    user is deactivated or no longer in any of these groups.

    Example:

    ```
    BAM_LDAP_BASE_DN_MAP = {
        'ou=test,dc=blinkenbunt,dc=org': [
            'jabber',
            'git',
        ],
        'ou=admins,dc=blinkenbunt,dc=org': [
            'admin',
        ],
    }
  • BAM_LDAP_SYNCHRONOUS_SYNC_ENABLED: If True, changes are immediately propagated to LDAP when they are made through the web frontend. If False, the sync_users management command has to be used to perform this task for all users. (Optional, default: True)

ToDo

Planned

  • service-based logins
  • self-service registration
  • form to edit own profile