- 05 May, 2019 8 commits
-
-
ale authored
Add tests to verify this is enforced.
-
ale authored
-
ale authored
-
ale authored
It will cache User objects (not directly the resources yet), wrapping another Backend object and invalidating the cache on every state-changing API call.
-
ale authored
-
ale authored
-
ale authored
Add a section on configuration.
-
- 03 Apr, 2019 1 commit
-
-
ale authored
-
- 27 Mar, 2019 1 commit
-
-
ale authored
-
- 21 Mar, 2019 2 commits
- 20 Mar, 2019 1 commit
-
-
ale authored
-
- 17 Feb, 2019 1 commit
-
-
ale authored
-
- 09 Feb, 2019 1 commit
-
-
ale authored
-
- 03 Feb, 2019 3 commits
- 14 Dec, 2018 2 commits
- 20 Nov, 2018 1 commit
-
-
ale authored
-
- 18 Nov, 2018 6 commits
-
-
ale authored
-
ale authored
-
ale authored
-
ale authored
-
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.
-
- 17 Nov, 2018 4 commits
-
-
ale authored
-
ale authored
-
ale authored
-
ale authored
The new ResourceID is really a database ID (in our case, a LDAP DN), and we have completely decoupled other request attributes like type and owner from it. Resource ownership checks are now delegated to the backend. Also change the backend CreateResource call to CreateResources, taking multiple resources at once, so we can perform user-level resource validation, and simplify the CreateUser code path.
-
- 16 Nov, 2018 1 commit
-
-
ale authored
The shard is kept in sync with the email resource shard. CreateUser validation enforces a single email resource per account.
-
- 14 Nov, 2018 6 commits
-
-
ale authored
Aliases and primary email addresses share the same namespace, so they must be both included in the SearchQuery for the 'email' resource.
-
ale authored
Mapped to the shadowLastChange attribute in LDAP.
-
ale authored
-
ale authored
-
ale authored
Some errors (validation) have structured contents, not just an error string, so we return them JSON-encoded along with a HTTP error 400.
-
ale authored
Previously we were returning error 500 when we should have returned a 400.
-
- 12 Nov, 2018 2 commits