ungleich-user/README.md

88 lines
1.9 KiB
Markdown
Raw Normal View History

# 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,
...).
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
## Development Setup
2021-12-05 17:19:07 +00:00
```
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`
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/