1. 18 Nov, 2018 1 commit
    • ale's avatar
      Allow creation of lists, and enforce user-level invariants · e2ae4a91
      ale authored
      CreateResourcesRequest now lets the owner be optional, allowing for
      creation of owner-less resources like mailing lists.
      Both CreateResources and CreateUser now check that user-level
      invariants (criteria such as "1 email per user") are respected.
  2. 17 Nov, 2018 1 commit
  3. 16 Nov, 2018 1 commit
    • ale's avatar
      Add shard and status to the User type · c5d3b1a5
      ale authored
      The shard is kept in sync with the email resource shard. CreateUser
      validation enforces a single email resource per account.
  4. 14 Nov, 2018 1 commit
    • ale's avatar
      Find email resources by their alias · 8a40fce7
      ale authored
      Aliases and primary email addresses share the same namespace, so they
      must be both included in the SearchQuery for the 'email' resource.
  5. 12 Nov, 2018 2 commits
  6. 09 Nov, 2018 2 commits
    • ale's avatar
      Rename PasswordRecovery to AccountRecovery · ec82ed43
      ale authored
      Referring to the account is clearer. Also add account recovery
      integration tests, and a test fixture with encryption keys.
    • ale's avatar
      First stage of refactor targeting simplicity · 4e34034b
      ale authored
      Structure flow around requests themselves and composition rather than
      handlers and wrappers, the results are likely more readable (and
      Move all the user auth management business logic to a smart RawUser
      object, to separate it from details of API handling. The result should
      be more understandable: all critical changes are contained within a
      single type.
      Also, with all the workflow driven by Requests, we can get rid of the
      boilerplate in the HTTP API server and replace it with a tiny tiny
      layer of reflection.
  7. 29 Oct, 2018 1 commit
  8. 30 Jun, 2018 1 commit
  9. 25 Jun, 2018 1 commit
  10. 24 Jun, 2018 2 commits
  11. 23 Jun, 2018 1 commit
  12. 22 Jun, 2018 1 commit
    • ale's avatar
      Add integration tests · aef048c2
      ale authored
      Start a full HTTP server, backed by an in-memory LDAP server, and test
      the API directly.