Set of administration tools for 42l's infrastructure
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Brume 935c0a9b54 removing condition if user is owner when adding to a domain 3 years ago
export initial commit! 3 years ago
src removing condition if user is owner when adding to a domain 3 years ago
.gitignore initial commit! 3 years ago
Cargo.lock using a type for menu properties to satisfy clippy 3 years ago
Cargo.toml using a type for menu properties to satisfy clippy 3 years ago
LICENSE Initial commit 3 years ago
README.md typo 3 years ago
config.toml.sample initial commit! 3 years ago
screenshot.png adding screenshot && cargo update 3 years ago

README.md

adhvalidator

Set of administration tools for 42l's infrastructure

This software is an interface customized to 42l's administrative needs. It is meant for internal use.

Though, you can see how do we manage our database and which tools we use to operate.

Why ?

Because during a whole year, validating a subscription was done like this:

docker exec -it postgres-db
psql <credentials>
INSERT INTO "adhesions" (user_id, adh_date) VALUES (<user_id>, '<ex:2020-01-01>');

Silly, huh? After the 50th subscriber it was getting tiring, so here's a backend software to do exactly the same thing, but without writing SQL queries, and with a friendly interface.

We also need to watch out for mailbox activities easily and without harming our users' privacy, in order to react promptly if we get spammed ; so monitoring tools had been integrated into it.

Features

  • User management
    • Display a user panel
      • Display all information related to a user: adhesion status, number of mailboxes/aliases, subscription to our newsletter / general assembly letter, account state
      • Edit max aliases/emails
      • Add/remove a subscription (adhesion)
      • Export an user's encrypted email
      • Delete an user
    • List all users (and display general statistics)
  • Manage email accounts
    • Scans mail logs and mail folders's disk usage
    • Check disk usage per domain, per user and per mailbox
    • Display the most active email addresses
      • Which addresses sends and/or receives most of the mails, and how many mails
  • Manage email domains
    • Add email domains
    • Add or remove allowed users for a domain
    • Change a domain owner
    • Toggle free access for a domain
  • Manage newsletters
    • Export encrypted addresses for newsletters, general assemblies and subscription expiry notices.
    • Once extracted from the server, the exported files can be used with wassup, by setting encrypted_adresses = true in the configuration file.

Screenshot

Screenshot

Current state

Compatibility

As it is now, it can't be used by other organizations to handle subscriptions. The mail monitoring feature might work, though.

I doubt this software will ever be compatible and reusable easily, because it has been especially made for 42l's infrastructure and every single association manages subscriptions in their own way.

Code

Currently the software takes approximately 2k lines of code.

The functions location (in files / folders) needs to be rearranged, the overall code quality isn't very good, even though clippy has been used to improve it a little.

Also, error handling is quite poor in this software, because it's meant for sysadmins and/or developers and we assume that they know what they do. If you are unsatisified with this, PRs are welcome.

Contribute!

This software has been made by neil for the Association 42l. If you'd like to support what we do, feel free to subscribe or donate to the association. Thank you!