Age | Commit message (Collapse) | Author | |
---|---|---|---|
2024-06-17 | Don't save the resource-owner role as a resource role | Frederick Muriuki Muriithi | |
The 'resource-owner' role is a system-default role that applies to most resources, but should not be editable by users. This commit removes the code that was linking the role with each resource, leading it to being presented to the user as a editable role. | |||
2024-06-17 | Use the form's json attribute to retrieve sent data | Frederick Muriuki Muriithi | |
The system uses JSON as the default communication format, so we use the form's json attribute to get any data sent. | |||
2024-06-11 | Fix typo. | Frederick Muriuki Muriithi | |
2024-06-11 | Temporary fix to retrieve users with read access to resource. | Frederick Muriuki Muriithi | |
2024-06-11 | List users assigned a particular role on a specific resource.handle-role-privilege-escalation | Frederick Muriuki Muriithi | |
2024-06-11 | Import the symbols we use in the module directly. | Frederick Muriuki Muriithi | |
Import the modules directly to help with reducing line-length and unnecessary typing. | |||
2024-06-11 | Unassign privilege from resource role. | Frederick Muriuki Muriithi | |
2024-06-10 | Improve error messaging. | Frederick Muriuki Muriithi | |
2024-06-10 | Fetch a role by its ID. | Frederick Muriuki Muriithi | |
2024-06-10 | Provide some endpoints for privileges. | Frederick Muriuki Muriithi | |
2024-06-10 | Use new db resultset conversion functions. | Frederick Muriuki Muriithi | |
2024-06-10 | Provide functions to convert DB rows into data objects. | Frederick Muriuki Muriithi | |
2024-06-10 | Provide resource roles endpoint | Frederick Muriuki Muriithi | |
Provide an endpoint that returns all the roles that a particular user has on a specific resource. | |||
2024-06-10 | Share reusable function | Frederick Muriuki Muriithi | |
2024-06-07 | Replace `…/group/roles` endpoint with `…/resource/…/roles` endpoint. | Frederick Muriuki Muriithi | |
The `…/group/roles` endpoint relied on the now deleted `group_roles` table that caused the implementation to be prone to privilege escalation attacks. This commit provides the `…/resource/…/roles` endpoint that provides the required functionality without the exposure. | |||
2024-06-07 | Update role assignment: user resource_roles table | Frederick Muriuki Muriithi | |
We no longer use the group_roles table, and have moved to the less privilege-escalation-prone resource_roles table. This commit updates the queries to use the newer resource_roles table. | |||
2024-06-06 | Add deprecation warning to /group-privileges endpoint function. | Frederick Muriuki Muriithi | |
2024-06-05 | Bug: Point to correct key to avoid errors | Frederick Muriuki Muriithi | |
2024-06-04 | Approximate the GN2 look-and-feel. | Frederick Muriuki Muriithi | |
2024-06-04 | Redirect appropriately when verifying emails. | Frederick Muriuki Muriithi | |
2024-06-03 | Raise explicit error messages for more graceful handling.enable-sending-emails | Frederick Muriuki Muriithi | |
2024-06-03 | Handle unverified emails | Frederick Muriuki Muriithi | |
If a user provides the correct credentials to login, but they are unverified, redirect them to the email verification page, where they are provided with a chance to verify their email, or send a new verification code. | |||
2024-06-03 | Provide endpoint for verification and do verification | Frederick Muriuki Muriithi | |
2024-06-03 | Send verification email on registration. | Frederick Muriuki Muriithi | |
2024-06-03 | Use asdict(...) | Frederick Muriuki Muriithi | |
Use dataclasses.asdict function to generate the dict that will be used for the response rather than building it up manually. | |||
2024-06-03 | Move user creation from db resultset into static method | Frederick Muriuki Muriithi | |
Creation of a User object from the database resultset will mostly be the same. This commit moves the repetitive code into a static method that can be called wherever we need it. This improves maintainability, since we only ever need to do an update in one place now. | |||
2024-06-03 | Save the creation date and verification status. | Frederick Muriuki Muriithi | |
2024-05-29 | Remove unused import. | Frederick Muriuki Muriithi | |
2024-05-29 | Revert "jwt: add user roles to the jwt token." | Frederick Muriuki Muriithi | |
This reverts commit 0582565fa7db4b95e86fb0dde8d83e3170e566a7. Adding the user roles to the token makes the token ridiculously large. Rather than doing that, we'll use an endpoint on the auth server to get the user roles and privileges instead. | |||
2024-05-24 | Revoke refresh token, and all its children. | Frederick Muriuki Muriithi | |
2024-05-24 | Check whether a refresh token has been used before | Frederick Muriuki Muriithi | |
Check whether a refresh token has been used before using it to generate a new JWT token. If the refresh token has been used previously, it should be revoked, and an error raised. As of this commit the actual revocation process hasn't been implemented. | |||
2024-05-24 | Linting: reorganise imports. | Frederick Muriuki Muriithi | |
2024-05-24 | Use monads consistently to reduce chances of errors. | Frederick Muriuki Muriithi | |
2024-05-23 | jwt: add user roles to the jwt token. | Frederick Muriuki Muriithi | |
2024-05-13 | Fix myriad of linting error | Frederick Muriuki Muriithi | |
These linting errors can't be rebased into the newer commits. | |||
2024-05-13 | Link old refresh token to newly issued refresh token | Frederick Muriuki Muriithi | |
We need to track the "lineage" of refresh tokens in order to detect possible stolen tokens and mitigate damage. | |||
2024-05-13 | Register the RefreshTokenGrant with the server | Frederick Muriuki Muriithi | |
Register the RefreshTokenGrant with the server to enable refreshing of the tokens. | |||
2024-05-13 | Use None as default for expires_in | Frederick Muriuki Muriithi | |
2024-05-13 | Save refresh token when it is generated. | Frederick Muriuki Muriithi | |
2024-05-13 | Save token with same ID as JWT's "jti" value. | Frederick Muriuki Muriithi | |
2024-05-13 | Initialise JWTRefreshToken model | Frederick Muriuki Muriithi | |
Add a model for the JWT refresh tokens. | |||
2024-05-06 | Add `jti` claim | Frederick Muriuki Muriithi | |
Have each JWT token have a `jti` claim (JWT ID) to help with tracking refreshes, and therefore validity of the JWTs. If a refresh token is used more than once, then that refresh token, and all its progeny/descendants are considered invalid, since that token could have been stolen. | |||
2024-05-02 | Include refresh tokens with generated JWT | Frederick Muriuki Muriithi | |
This shim enables us to have a refresh token with the JWT. This might not be the way to refresh JWTs - this is because the `authlib.oauth2.rfc7523.token.JWTBearerTokenGenerator.__call__(…)` method has a comment that states: # there is absolutely no refresh token in JWT format Searching on the internet, however, seems to indicate that JWTs can be used in conjunction with refresh tokens... We need to verify this and fix this if necessary. | |||
2024-05-02 | Delete a client's public key. | Frederick Muriuki Muriithi | |
2024-05-02 | Register a client's public key(s). | Frederick Muriuki Muriithi | |
2024-05-02 | Compute and cache the client's KeySet. | Frederick Muriuki Muriithi | |
2024-05-02 | Fix editing of grant_types | Frederick Muriuki Muriithi | |
This commit makes the values for the grant types dynamic, enabling adding and/or removing of supported grant types. The editing was not updating the grant type values correctly either - we update the metadata key from "grants" to "grant_types" to fix that. | |||
2024-05-02 | Use same name as register-client form | Frederick Muriuki Muriithi | |
2024-05-02 | Make registration of grant-types more flexible. | Frederick Muriuki Muriithi | |
2024-05-02 | use dataclasses' asdict() function. | Frederick Muriuki Muriithi | |