- 29 Jun, 2019 1 commit
-
-
ale authored
-
- 21 Jun, 2019 1 commit
-
-
ale authored
There's no reason for it to be exposed, it is currently an implementation detail in how new MySQL databases are created (the password reset flow for databases does not use it after that).
-
- 09 Jun, 2019 2 commits
-
-
ale authored
-
ale authored
Add a couple of interfaces to run arbitrary (including non-LDAP) queries to discover a user's Resources. The first implementation (beyond the previous behavior using a statically templated LDAP query) is the mailing list discoverer, which can find lists owned by an email alias, thus fixing issue #8.
-
- 03 Apr, 2019 1 commit
-
-
ale authored
-
- 21 Mar, 2019 2 commits
- 09 Feb, 2019 1 commit
-
-
ale authored
-
- 18 Nov, 2018 1 commit
-
-
ale authored
-
- 17 Nov, 2018 1 commit
-
-
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 1 commit
-
-
ale authored
Mapped to the shadowLastChange attribute in LDAP.
-
- 12 Nov, 2018 1 commit
-
-
ale authored
If the user has no encryption keys, we'll initialize them on password changes. This feature is controlled by a configuration parameter.
-
- 09 Nov, 2018 3 commits
-
-
ale authored
Referring to the account is clearer. Also add account recovery integration tests, and a test fixture with encryption keys.
-
ale authored
-
ale authored
Structure flow around requests themselves and composition rather than handlers and wrappers, the results are likely more readable (and shorter). 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.
-
- 01 Nov, 2018 2 commits
-
-
ale authored
Forgot to initialize the wrapped u2f.Registration.
-
ale authored
Establish a standardized serialization format for u2f registration keys: base64-encoded raw registration data, encoded as a JSON string. This format decodes transparently to a Go []byte slice, but it needs explicit base64 decoding in Python.
-
- 17 Aug, 2018 1 commit
-
-
ale authored
-
- 26 Jul, 2018 1 commit
-
-
ale authored
The type is already encoded in the resource ID, but this is handy for API clients so that they do not need to parse resource IDs.
-
- 01 Jul, 2018 2 commits
- 30 Jun, 2018 1 commit
-
-
ale authored
Still doesn't entirely solve the problem of encoding the U2F registration requests on the client side (we should probably just accept a bytestring), but all the important functionality is there.
-
- 25 Jun, 2018 1 commit
-
-
ale authored
Let the server fill in default values for resource and user creation.
-
- 24 Jun, 2018 1 commit
-
-
ale authored
By adding a User to the resource validation context, we can implement more complex checks like verifying that websites have an associated DAV account, or that the parent resource of a database is actually a website.
-
- 23 Jun, 2018 1 commit
-
-
ale authored
-
- 22 Jun, 2018 1 commit
-
-
ale authored
Start a full HTTP server, backed by an in-memory LDAP server, and test the API directly.
-
- 21 Jun, 2018 1 commit
-
-
ale authored
-
- 20 Jun, 2018 2 commits
-
-
ale authored
The new Backend/TX split makes it a bit harder to test the validators, but do so anyway.
-
ale authored
Use a lower level type to abstract LDAP "transactions" (really just batches of changes) and generate a set of ModifyRequest objects at commit time. Change the API to let the caller manage the transaction (TX object) lifetime.
-
- 19 Jun, 2018 1 commit
-
-
ale authored
This should make it easier to implement a SQL backend in the future if necessary, even though LDAP knows no such thing as transactions. As a result of a better low-level interface, reducing the boilerplate LDAP code, the business logic in model.go should be quite more readable.
-
- 01 Apr, 2018 2 commits
- 20 Mar, 2018 1 commit
-
-
ale authored
-
- 18 Mar, 2018 1 commit
-
-
ale authored
-