2020-07-05 21:12:43 +02:00
|
|
|
|
|
|
|
# Table of Contents
|
|
|
|
|
2020-07-08 21:22:20 +02:00
|
|
|
1. [ldap0r](#orgf56b909)
|
|
|
|
1. [Installation](#org6f0551a)
|
|
|
|
2. [Contribution](#org8358327)
|
|
|
|
3. [Todo List](#orga6f7ebf)
|
|
|
|
1. [Password reset <code>[5/11]</code>](#org83950f1)
|
|
|
|
2. [Configuration <code>[0/5]</code>](#orgf7ec86e)
|
|
|
|
3. [Login Section (not sure if going to happen)](#org9f168b0)
|
2020-07-05 21:12:43 +02:00
|
|
|
|
|
|
|
|
2020-07-08 21:22:20 +02:00
|
|
|
<a id="orgf56b909"></a>
|
2020-07-05 21:12:43 +02:00
|
|
|
|
|
|
|
# ldap0r
|
|
|
|
|
|
|
|
So far `ldap0r` is simply a very small web application just to reset
|
2020-07-08 21:22:20 +02:00
|
|
|
LDAP passwords. All it is capable of is to let an user enter its
|
|
|
|
email address and send an email containing a generated link to reset
|
|
|
|
the LDAP password, that's it so far. My motivation was to have
|
|
|
|
something "suckless" which does not depend on PHP or similar insane.
|
2020-07-05 21:12:43 +02:00
|
|
|
|
|
|
|
|
2020-07-08 21:22:20 +02:00
|
|
|
<a id="org6f0551a"></a>
|
2020-07-05 21:12:43 +02:00
|
|
|
|
|
|
|
## Installation
|
|
|
|
|
2020-07-08 21:22:20 +02:00
|
|
|
A rust nightly toolchain which can be acquired via <https://rustup.rs>
|
2020-07-05 21:12:43 +02:00
|
|
|
is needed in order to successfully build `ldap0r`. Install `rustup`,
|
|
|
|
download rust nightly, then clone this repository, set the
|
|
|
|
toolchain inside the source directory to nightly, build and run it.
|
|
|
|
|
|
|
|
rustup toolchain install nightly
|
|
|
|
git clone https://git.onders.org/finga/ldap0r.git
|
|
|
|
cd ldap0r
|
|
|
|
rustup override set nightly
|
|
|
|
cargo run
|
|
|
|
|
|
|
|
The application can be configured with the `Rocket.toml`
|
|
|
|
configuration file.
|
|
|
|
|
|
|
|
|
2020-07-08 21:22:20 +02:00
|
|
|
<a id="org8358327"></a>
|
|
|
|
|
|
|
|
## Contribution
|
|
|
|
|
|
|
|
I am open for suggestions and appreciate any feedback.
|
|
|
|
|
|
|
|
|
|
|
|
<a id="orga6f7ebf"></a>
|
2020-07-05 21:12:43 +02:00
|
|
|
|
|
|
|
## Todo List
|
|
|
|
|
|
|
|
|
2020-07-08 21:22:20 +02:00
|
|
|
<a id="org83950f1"></a>
|
2020-07-05 21:12:43 +02:00
|
|
|
|
2020-07-08 21:22:20 +02:00
|
|
|
### Password reset <code>[5/11]</code>
|
2020-07-05 21:12:43 +02:00
|
|
|
|
2020-07-08 21:22:20 +02:00
|
|
|
1. DONE Form to send reset link
|
2020-07-05 21:12:43 +02:00
|
|
|
|
2020-07-08 21:22:20 +02:00
|
|
|
2. DONE Parse URL with reset key
|
2020-07-05 21:12:43 +02:00
|
|
|
|
|
|
|
3. DONE Cleanup all unwraps
|
|
|
|
|
|
|
|
4. DONE Proper error handling
|
|
|
|
|
|
|
|
5. DONE Implement proper logging
|
|
|
|
|
|
|
|
6. TODO Make \`keys.lock()\` properly thread safe
|
|
|
|
|
|
|
|
7. TODO Check for existing keys
|
|
|
|
|
|
|
|
8. TODO Implement key validity timeout
|
|
|
|
|
|
|
|
9. TODO Implement proper tests
|
|
|
|
|
2020-07-08 21:22:20 +02:00
|
|
|
10. TODO Optionally store key persistently between restarts
|
|
|
|
|
|
|
|
11. TODO Should `tera` templates instead of `handlebar` templates be used?
|
2020-07-05 21:12:43 +02:00
|
|
|
|
|
|
|
|
2020-07-08 21:22:20 +02:00
|
|
|
<a id="orgf7ec86e"></a>
|
2020-07-05 21:12:43 +02:00
|
|
|
|
|
|
|
### Configuration <code>[0/5]</code>
|
|
|
|
|
|
|
|
1. TODO Fix domain config
|
|
|
|
|
|
|
|
2. TODO Make size of key configurable
|
|
|
|
|
|
|
|
3. TODO Make key validity timeout
|
|
|
|
|
|
|
|
4. TODO Make it possible to send emails over encrypted connections
|
|
|
|
|
|
|
|
5. TODO Make html/text emails configurable
|
|
|
|
|
|
|
|
|
2020-07-08 21:22:20 +02:00
|
|
|
<a id="org9f168b0"></a>
|
2020-07-05 21:12:43 +02:00
|
|
|
|
|
|
|
### Login Section (not sure if going to happen)
|