Skip to content
Snippets Groups Projects
  1. Feb 17, 2022
    • Julian's avatar
      Refactor Unix UID/GID generation · 66df931d
      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.
      66df931d
  2. Feb 13, 2022
    • Julian's avatar
      Unified password hashing for User and Signup · 117e257c
      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.
      117e257c
  3. Dec 11, 2021
  4. Oct 05, 2021
  5. Oct 02, 2021
    • Julian's avatar
      Move User, Group and Mail models from LDAP to DB · 4a9c455f
      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.
      4a9c455f
  6. Sep 04, 2021
  7. Aug 30, 2021
    • Julian's avatar
      Restrict password alphabet to SASLprep-safe ASCII subset · cb2d7f35
      Julian authored
      Prior to this change user passwords were not validated on change aside from
      their length, but validated on login/bind by ldap3 with SASLprep. Instead of
      using SASLprep on password change, this change restricts passwords to 7-bit
      ASCII without control characters. Control characters are forbidden by
      SASLprep. Multi-byte characters are uncommon in password, especially in those
      generated by password managers. This ensures that passwords are always
      SASLprep-safe without implementing the rather complex SASLprep algorithm. It
      also allows us to fully describe the alphabet restrictions in the relevant
      forms.
      
      Fixes #100
      cb2d7f35
  8. Jul 30, 2021
  9. Jul 26, 2021
  10. Jun 17, 2021
  11. Jun 13, 2021
  12. Jun 12, 2021
  13. May 01, 2021
  14. Feb 23, 2021
  15. Feb 19, 2021
  16. Feb 15, 2021
  17. Jan 29, 2021
  18. Oct 26, 2020
Loading