# Ungleich Account Management Webapp This service runs on [account.ungleich.ch](https://account.ungleich.ch/) and allows customers manage their ungleich account (register, edit mail & password, ...). ## Todos for v2: * Rewrite/create new app Django 4.0 based (ungleichuser) * Do not use django-auth-ldap, because it uses python-ldap * Update the template HTML to bootstrap5 * Use ldap3 * Check/verify the ldap registration * Ensure multiple ldap servers are supported * Cleanup this readme * Use the following "captcha" for all forms: * Extra form field named "random" * Present the user the following text: * Create Dockerfile / ensure it works in kubernetes ## Next steps * Override/use custom form to allow captcha ## Development Setup ``` python3 -m venv venv . ./venv/bin/activate pip install -r requirements.txt `` * Clone this repository and enter top-level directory. * (Optional) Setup a Python virtualenv and install dependencies via pip: - `virtualenv .venv` - `source .venv/bin/activate` - `pip install -r requirements.txt` - Note: you might have to install some OS dependencies (i.e. libldap2, libsasl). * Configure the `dal` django app (uses the [decouple](https://pypi.org/project/python-decouple/) library underneath) - Copy `dal/env.sample` to `dal/.env` - Populate `dal/.env` ## Functionality - Allow user to register in a specific subtree - Verify that user does not exist in another subtree - Assign an id - Allow password reset via Mail - DB usage: for password reset? ## Parameters LDAPSERVER ## Steps / Views ### Register view Form: [get] * captcha? * username * password1 * password2 Post receiver: [post] * Validation / check if human * E-Mail verification E-Mail verify: [get] * Create user ### Password reset view * captcha * username ## Tech notes ### django-auth-ldap Depends on python-ldap, which fails on Alpine at the moment: * https://django-auth-ldap.readthedocs.io/en/latest/