aboutsummaryrefslogtreecommitdiff
path: root/gn_auth/auth
AgeCommit message (Expand)Author
2024-06-10Fetch a role by its ID.Frederick Muriuki Muriithi
2024-06-10Provide some endpoints for privileges.Frederick Muriuki Muriithi
2024-06-10Use new db resultset conversion functions.Frederick Muriuki Muriithi
2024-06-10Provide functions to convert DB rows into data objects.Frederick Muriuki Muriithi
2024-06-10Provide resource roles endpoint...Provide an endpoint that returns all the roles that a particular user has on a specific resource. Frederick Muriuki Muriithi
2024-06-10Share reusable functionFrederick Muriuki Muriithi
2024-06-07Replace `…/group/roles` endpoint with `…/resource/…/roles` endpoint....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. Frederick Muriuki Muriithi
2024-06-07Update role assignment: user resource_roles table...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. Frederick Muriuki Muriithi
2024-06-06Add deprecation warning to /group-privileges endpoint function.Frederick Muriuki Muriithi
2024-06-05Bug: Point to correct key to avoid errorsFrederick Muriuki Muriithi
2024-06-04Approximate the GN2 look-and-feel.Frederick Muriuki Muriithi
2024-06-04Redirect appropriately when verifying emails.Frederick Muriuki Muriithi
2024-06-03Raise explicit error messages for more graceful handling.enable-sending-emailsFrederick Muriuki Muriithi
2024-06-03Handle unverified emails...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. Frederick Muriuki Muriithi
2024-06-03Provide endpoint for verification and do verificationFrederick Muriuki Muriithi
2024-06-03Send verification email on registration.Frederick Muriuki Muriithi
2024-06-03Use asdict(...)...Use dataclasses.asdict function to generate the dict that will be used for the response rather than building it up manually. Frederick Muriuki Muriithi
2024-06-03Move user creation from db resultset into static method...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. Frederick Muriuki Muriithi
2024-06-03Save the creation date and verification status.Frederick Muriuki Muriithi
2024-05-29Remove unused import.Frederick Muriuki Muriithi
2024-05-29Revert "jwt: add user roles to the jwt token."...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. Frederick Muriuki Muriithi
2024-05-24Revoke refresh token, and all its children.Frederick Muriuki Muriithi
2024-05-24Check whether a refresh token has been used before...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. Frederick Muriuki Muriithi
2024-05-24Linting: reorganise imports.Frederick Muriuki Muriithi
2024-05-24Use monads consistently to reduce chances of errors.Frederick Muriuki Muriithi
2024-05-23jwt: add user roles to the jwt token.Frederick Muriuki Muriithi
2024-05-13Fix myriad of linting error...These linting errors can't be rebased into the newer commits. Frederick Muriuki Muriithi
2024-05-13Link old refresh token to newly issued refresh token...We need to track the "lineage" of refresh tokens in order to detect possible stolen tokens and mitigate damage. Frederick Muriuki Muriithi
2024-05-13Register the RefreshTokenGrant with the server...Register the RefreshTokenGrant with the server to enable refreshing of the tokens. Frederick Muriuki Muriithi
2024-05-13Use None as default for expires_inFrederick Muriuki Muriithi
2024-05-13Save refresh token when it is generated.Frederick Muriuki Muriithi
2024-05-13Save token with same ID as JWT's "jti" value.Frederick Muriuki Muriithi
2024-05-13Initialise JWTRefreshToken model...Add a model for the JWT refresh tokens. Frederick Muriuki Muriithi
2024-05-06Add `jti` claim...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. Frederick Muriuki Muriithi
2024-05-02Include refresh tokens with generated JWT...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. Frederick Muriuki Muriithi
2024-05-02Delete a client's public key.Frederick Muriuki Muriithi
2024-05-02Register a client's public key(s).Frederick Muriuki Muriithi
2024-05-02Compute and cache the client's KeySet.Frederick Muriuki Muriithi
2024-05-02Fix editing of grant_types...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. Frederick Muriuki Muriithi
2024-05-02Use same name as register-client formFrederick Muriuki Muriithi
2024-05-02Make registration of grant-types more flexible.Frederick Muriuki Muriithi
2024-05-02use dataclasses' asdict() function.Frederick Muriuki Muriithi
2024-05-02Use user-provided values rather than hard-coded values.Frederick Muriuki Muriithi
2024-05-02Add error checking to form input data.Frederick Muriuki Muriithi
2024-04-30Create a JWT token when querying a user's role an a resource....* gn_auth/auth/authorisation/resources/views.py: Import time. (get_user_roles_on_resource): Add a JWT bearer token to the responses's header. Signed-off-by: Munyoki Kilyungi <me@bonfacemunyoki.com> Munyoki Kilyungi
2024-04-26UX: use correct class for flash messages.Frederick Muriuki Muriithi
2024-04-26Pass redirect_uri fields in POST. Use full URL...Pass in the missing redirect_uri value along with login data. Use the full URI (complete with request args) as the form's action. This resolves the error raised when wrong credentials are provided. Frederick Muriuki Muriithi
2024-04-24Move the errors module up one level to break circular dependencies.Frederick Muriuki Muriithi
2024-04-23pylint: Fix linting errors.Frederick Muriuki Muriithi
2024-04-22Resolve the key using the "kid" field.Frederick Muriuki Muriithi