aboutsummaryrefslogtreecommitdiff
path: root/gn_auth/auth
AgeCommit message (Collapse)Author
2024-09-16Pass cursor rather than connection to create_resource functionFrederick Muriuki Muriithi
In order to decouple the `create_resource` function from the related functions that assign roles to users, this commit changes the code to pass in a cursor rather than a connection. The cursor will be the same cursor passed into the role assignment functions ensuring that the resource creation and role assignment happen in a single transaction.
2024-09-13Notes: Add note on some items that could go into hooks.Frederick Muriuki Muriithi
2024-08-30If config variables are not set, return empty string.Frederick Muriuki Muriithi
2024-08-21Only import anonymous collections if they contain traitszsloan
2024-08-21Update 'changed' field when traits are added or removed from collectionszsloan
2024-08-21Do actual password change.Frederick Muriuki Muriithi
2024-08-21Provide email and improve UI text/notification.Frederick Muriuki Muriithi
2024-08-20Save to DB then send emailFrederick Muriuki Muriithi
Separate the saving of the token from its sending.
2024-08-20Handle the "GET" part of the change-password requestFrederick Muriuki Muriithi
- Delete any expired tokens - Display the UI if token is valid, else redirect with error notification.
2024-08-20Pass GET parameters for correct redirection.Frederick Muriuki Muriithi
2024-08-20Fix query: Replace any existing token.Frederick Muriuki Muriithi
2024-08-19Generate token and send out "Forgot Password" emailFrederick Muriuki Muriithi
* Generate token to use for verifying the password-change request * Send out email with token
2024-08-19Show "Forgot Password" link.Frederick Muriuki Muriithi
Provide the user with the "Forgot Password" link, if the backend supports it.
2024-08-15Fix a bunch of linting errors.Frederick Muriuki Muriithi
2024-08-15Reduce UI complexityFrederick Muriuki Muriithi
Providing both the "Enter Verification Token" and the "Send Verification Email" elements of the same user interface seems to confuse users. This commit ensures that the system will provide one or the other, but not both, depending on whether or not there is a pending verification token present for the user.
2024-08-15Import specific classes from the datetime module.Frederick Muriuki Muriithi
2024-08-15fix: bugs with generating auth tokensJohn Nduli
2024-08-15fix: bugs in masquerade apiJohn Nduli
2024-08-14fix: import timedelta in jwksJohn Nduli
2024-08-14refactor: move newest_jwk_with_rotation function to jwks.pyJohn Nduli
We have a similar jwk module in gn2 that does similar functionality. Moving the newest_jwk_with_rotation function to the module ensures that there's some consistency between both modules so that when we ever want to remove the duplication (e.g. by creating some python pip package) it's easier.
2024-08-13Emails: Make "From" address configurableFrederick Muriuki Muriithi
We are running GeneNetwork in different environments. Each environment could have it's own separate domain, and need a different sender email to allow the underlying services to allow the emails through.
2024-08-08Bug: Prevent fall-through to verification if code is expired.Frederick Muriuki Muriithi
2024-08-08Get data from form too.Frederick Muriuki Muriithi
2024-08-08Forward email to email verification page.Frederick Muriuki Muriithi
2024-08-07Log out user registration errors at the `ERROR` log-level.Frederick Muriuki Muriithi
2024-08-05Fix linting errors.Frederick Muriuki Muriithi
2024-08-02fix: use json to support parsing oauth2 requestsJohn Nduli
The local sign in request used by gn2 uses json. However, the default parsing assumes form data, see: - https://github.com/lepture/authlib/blob/v1.2.0/authlib/integrations/flask_oauth2/authorization_server.py#L72 - https://github.com/lepture/authlib/blob/v1.2.0/authlib/integrations/flask_helpers.py#L5 We create a custom Authorization server that defaults to `use_json=True` when creating the oauth request object
2024-08-01Handle generic exception and return a value.enable-key-rotationFrederick Muriuki Muriithi
2024-07-31Update all endpoints to use the `client_secret_post` auth method.Frederick Muriuki Muriithi
2024-07-31Use customised JWTBearerToken classFrederick Muriuki Muriithi
2024-07-31Extend default JWTBearerToken to include a user member.Frederick Muriuki Muriithi
2024-07-31Authenticate JWTs using all available keys.Frederick Muriuki Muriithi
2024-07-31Bug: Pass in app rather than path.Frederick Muriuki Muriithi
2024-07-31Fetch a client's JWKs from a URIFrederick Muriuki Muriithi
2024-07-31Enable registration of a public-jwks-uri for every clientFrederick Muriuki Muriithi
2024-07-31Enable external configuration of session expiry periodFrederick Muriuki Muriithi
Enable passing in the number of minutes that a session can be valid for. This enables the length of time that the session can last to be configurable rather than hard-coded.
2024-07-31Ignore warning from mypy.Frederick Muriuki Muriithi
2024-07-31Validate JWTs against all existing JWKs.Frederick Muriuki Muriithi
2024-07-31Remove obsoleted SSL_PRIVATE_KEY configurationFrederick Muriuki Muriithi
With the key rotation in place, eliminate the use of the SSL_PRIVATE_KEY configuration which pointed to a specific non-changing JWK.
2024-07-31Update datetime references on changed import.Frederick Muriuki Muriithi
2024-07-31Retrieve newest JWK, creating a new JWK where necessary.Frederick Muriuki Muriithi
To help with key rotation, we fetch the latest key, creating a new JWK in any of the following 2 conditions: * There is no JWK in the first place * The "newest" key is older than a specified number of days
2024-07-31Simplify jwks_directory() functionFrederick Muriuki Muriithi
Pass in the app object rather than a path and compute the secrets directory within the function.
2024-07-30JWT refresh: Deactivate the checks and revocationFrederick Muriuki Muriithi
The checks for whether a token is already linked, and then revoking it and raising an error were causing issues in multi-threaded environments, where there'd be multiple requests to the auth server all using an expired token. This just links the refresh token and avoids the check and revocation for the time being.
2024-07-18List any/all existing JWKsFrederick Muriuki Muriithi
List any/all existing JWKs that the server currently supports.
2024-07-18Add module to handle JWK filesFrederick Muriuki Muriithi
2024-07-17Add non-interactive script to assign make data public by default.Frederick Muriuki Muriithi
2024-06-25Roles: Get rid of use of GroupRole; use Role directly for resourcesFrederick Muriuki Muriithi
The GroupRole idea was flawed, and led to a critical bug that would have allowed privilege escalation. This uses the Role directly acting on a specific resource when assigning said role to a user.
2024-06-20Reorganise test fixtures. Fix tests and issues caught.Frederick Muriuki Muriithi
Reorganise test fixtures to more closely follow the design of the auth system. Fix the broken tests due to refactors and fix all issues caught by the running tests.
2024-06-18fix mypy errorsFrederick Muriuki Muriithi
2024-06-17Fix mypy errorsFrederick Muriuki Muriithi