forked from ungleich-public/ungleich-user
No description
- Python 35.5%
- CSS 31.5%
- HTML 17.6%
- JavaScript 12.6%
- Shell 1.9%
- Other 0.9%
The highest uidNumber was cached in dal/ldap_max_uid_file. That breaks with more than one replica and is lost on every container restart. The uniqueness check behind it searched base '' (the root DSE), which OpenLDAP never matches, so nothing caught a stale file. The error path also referenced a setting that does not exist. Now a paged search over ENTIRE_SEARCH_BASE finds the highest uidNumber on each activation. Numbering is unchanged: the next number is above both LDAP_DEFAULT_START_UID and every existing uidNumber. LDAP_MAX_UID_FILE_PATH is no longer used. |
||
|---|---|---|
| dal | ||
| dev | ||
| logs | ||
| ungleichuser | ||
| .gitignore | ||
| docker-compose.dev.yml | ||
| Dockerfile | ||
| manage.py | ||
| nameko-func.py | ||
| README.md | ||
| requirements.txt | ||
Ungleich Account Management Webapp
This service runs on account.ungleich.ch and allows customers manage their ungleich account (register, edit mail & password, ...).
Status v2
- See below ungleichuser/
- register view created
- Not solved:
- email verification before user is created
- Solved
- Finding highest uid, increasing by 1
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
``
## Functionality
x Allow user to register in a specific subtree
x Verify that user does not exist in another subtree
x Assign an id
- Allow password reset [via Mail?]
- DB usage: for password reset?
## Parameters
Via environment variables:
* LDAPSERVERS=".." -- White space separated list of LDAP-Servers
* ADMIN_DN="" -- we use this DN to connect to LDAP
* ADMIN_PASSWORD="" -- we use this password to connect to LDAP
* SECRET_KEY
* DEBUG
* ALLOWED_HOSTS
## Views
### Register view
Form: [get]
* username
* password1
* password2
Post receiver: [post]
* E-Mail verification
E-Mail verify: [get]
* Create user
### Password reset view
* captcha
* username or email