- Feb 27, 2022
-
-
Julian authored
-
- Feb 25, 2022
-
-
Julian authored
Added guard to first v2 migration in order to prevent accidental upgrades. Extended the upgrade instructions and moved them from the README to a standalone file.
-
Julian authored
The original change completely broke single logout support. The migration now uses the correct hashing algorithm (unsalted SHA512 instead of salted SHA512) for OAuth2/API secrets/passwords.
-
Julian authored
The migration originally failed to convert the passwords/secrets to the format expected by PasswordHash resulting in invalid password hashes. With this change, the migration works correctly. Also fixes minor template bug.
-
- Feb 24, 2022
-
-
Julian authored
Also adds a shallow Service model that coexists with the config-defined services to group multiple OAuth2 and API clients together. Clients defined in the config with OAUTH2_CLIENTS and API_CLIENTS_2 are imported by the database migrations. Removes support for complex values for the OAuth2 client group_required option. Only simple group names are supported, not (nested) lists of groups previously interpreted as AND/OR conjunctions. Also removes support for the login_message parameter of OAuth2 clients.
-
- Feb 17, 2022
-
-
Julian authored
The generation now happens in a subquery inside the INSERT statement instead of separate client-managed query. This should also reduce the risk of race conditions. Service and non-service users may now use the same UID range.
-
- Feb 16, 2022
-
-
Julian authored
-
Julian authored
-
Julian authored
The command replaces all existing mechanisms for deleting expired objects. It should run at least daily. The Debian package includes a corresponding cron job. Ratelimit events now use UTC timestamps instead of localtime. On upgrade all past ratelimit events are cleared.
-
- Feb 14, 2022
-
-
Julian authored
-
- Feb 13, 2022
-
-
Julian authored
Calling op.get_bind outside a callback broke "flask db history".
-
Julian authored
Argon2 is a modern password hashing algorithm. It is significantly more secure than the previous algorithm (salted SHA512). User logins with Argon2 are relativly slow and cause significant spikes in CPU and memory (100MB) usage. Existing passwords are gradually migrated to Argon2 on login.
-
Julian authored
Previously User used salted SHA512 with OpenLDAP-style prefix syntax and Signup used crypt. Both models had their own hashing and verification code. Now both use OpenLDAP-style syntax with support for all traditional formats including crypt. Salted SHA512 is used for new User and Signup passwords. Existing Signup objects are migrated to the new format and remain functional. User passwords now support gradual migration to another hash algorithm when it is changed in the future. This code is planned to be used for database-stored API and OAuth2 client secrets.
-
- Feb 08, 2022
-
-
Julian authored
-
- Feb 04, 2022
-
-
Julian authored
Previously the getmails API endpoint did not match "receive_address" values case-insensitivly like it did pre-v2. To solve this independent of database collations, all existing mail receive addresses are converted to lower-case and new/changed receive addresses are constraint to ASCII lower-case letters, digits and symbols.
-
- Feb 01, 2022
-
-
Julian authored
The options were introduced to cleanly handle LDAP user connections. Since LDAP support is now gone and hence user connections are gone too, these options are no longer necessary. While the options may be useful in other cases, we cannot continuously test them and so we are removing them for now.
-
Julian authored
Previously ACL_ACCESS_GROUP defaulted to the value of ACL_SELFSERVICE_GROUP, now it defaults to "uffd_access". Note that ACL_SELFSERVICE_GROUP has the same default value. If you set ACL_SELFSERVICE_GROUP to a different value but not ACL_ACCESS_GROUP, you will need to update your config.
-
- Dec 11, 2021
-
- Dec 09, 2021
-
-
Julian authored
CONFIG_FILENAME works relative to the app's instance path. While (strictly speaking) CONFIG_FILENAME is named correctly, it is not really obvious that it should be set to an instance-relative filename instead of a path. The current uwsgi.ini file illustrates this problem. Not having a way to specify an absolute config file path is a problem for the Debian package: The actual config file /etc/uffd/uffd.cfg must be symlinked to /usr/share/uffd/instance/config.cfg to be found. Setting CONFIG_PATH to "/etc/uffd/uffd.cfg" simplifies this. Since this change is part of a new major release, we can drop CONFIG_FILENAME in favour of CONFIG_PATH.
-
Julian authored
Pylint non-deterministicly fails to detect that a method is overwritten later and complains that the method does not exist. This is pretty annoying and remains unfixed in the most recent version.
-
- Dec 03, 2021
-
-
Julian authored
This change is going to be backported to v1.x.x to have a good migration path. Bearer auth with API_CLIENTS config key is deprecated and planned to be removed in v2.0.0.
-
- Oct 26, 2021
-
-
sistason authored
-
Julian authored
The script generated a broken changelog if the current commit is tagged as a release. That works now. Additional improvements: * Merge commits are ignored * "^fixup!" commits are ignored * Commit summaries are line-wrapped * Authors can be merged by manually supplied name mapping * The first release also includes a list of commits. They were originally excluded because the first release contains so many commits, including many unclean ones. But excluding those commits also means excluding the attribution, so it is not really an option. * Authors are ordered by the number of their contributions in a release to make occasional contributors more visible.
-
- Oct 25, 2021
-
-
Julian authored
Previously CHANGELOG had to be updated manually. This was done by downloading the output of a CI job that used listed commits since the last release. This made releasing a bit more complicated and led to uselsess release commits. Now a script creates the full debian/changelog with all versions based on git tags and git commits.
-
- Oct 05, 2021
-
-
Julian authored
-
- Oct 04, 2021
-
- Oct 03, 2021
-
-
Julian authored
-
- Oct 02, 2021
-
-
Julian authored
* Removal of ldapalchemy and LDAP mocking support * Removal of dependency on ldap3 (except for the migration) * Remaining "LDAP_<name>" config keys are renamed to "<name>" * Web interface to create, edit and delete groups * Consistent foreign key, cascading and nullable configuration on all models * User/Group.dn is replaced with numeric User/Group.id * User.uid is renamed to User.unix_uid (to differentiate with new User.id) * Group.gid is renamed to Group.unix_gid (to differentiate with new Group.id) * All User/Group/Mail related routes now use the database ids instead of uid/gid/dn * PasswordToken/MailToken now reference users directly instead of storing loginnames The database migration (optionally) uses the v1 config keys to connect to an LDAP server and to import all users, groups and mail forwardings.
-
- Sep 29, 2021
-
-
c-tim authored
Patch-version is not pinned. Fixes: #121 Fixes: #122 Supersedes: !93
-
- Sep 13, 2021