2020-05-01 09:07:29 +00:00
|
|
|
# Ungleich Account Management Webapp
|
2018-10-14 21:30:58 +00:00
|
|
|
|
2020-05-01 09:07:29 +00:00
|
|
|
This service runs on [account.ungleich.ch](https://account.ungleich.ch/) and
|
|
|
|
allows customers manage their ungleich account (register, edit mail & password,
|
|
|
|
...).
|
2018-10-14 21:30:58 +00:00
|
|
|
|
2021-12-05 19:53:41 +00:00
|
|
|
## 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
|
|
|
|
|
2020-05-01 09:07:29 +00:00
|
|
|
## Development Setup
|
|
|
|
|
2021-12-05 17:19:07 +00:00
|
|
|
```
|
|
|
|
python3 -m venv venv
|
|
|
|
. ./venv/bin/activate
|
|
|
|
pip install -r requirements.txt
|
|
|
|
``
|
|
|
|
|
2020-05-01 09:07:29 +00:00
|
|
|
* 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`
|
2021-12-05 17:59:19 +00:00
|
|
|
|
|
|
|
## 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/
|