Age | Commit message (Expand) | Author |
2024-09-26 | Bugfix: Fix bugs that were preventing creation of geno resource...Fix the bugs that were causing the creation of a genotype resource via
API to fail.
| Frederick Muriuki Muriithi |
2024-09-25 | Implement genotype resource creation via API with resource data...Create the resource, assign the resource-owner role and link the
resource's data in a single API call.
| Frederick Muriuki Muriithi |
2024-09-25 | Extract common role assignment to its own module | Frederick Muriuki Muriithi |
2024-09-16 | Create population resource and assign appropriate roles...Provide an endpoint to create a new population
resource (inbredset-group) and assign the active user with the
appropriate privileges against the new resource.
| Frederick Muriuki Muriithi |
2024-09-16 | Rename blueprint and register it one level lower...Register the populations/inbredset blueprint with the "resources"
blueprint rather than at the higher level "auth" blueprint to retain
the hierarchy of the blueprints and make maintenance arguably easier.
| Frederick Muriuki Muriithi |
2024-09-16 | Pass cursor rather than connection to create_resource function...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.
| Frederick Muriuki Muriithi |
2024-09-13 | Notes: Add note on some items that could go into hooks. | Frederick Muriuki Muriithi |
2024-08-30 | If config variables are not set, return empty string. | Frederick Muriuki Muriithi |
2024-08-21 | Only import anonymous collections if they contain traits | zsloan |
2024-08-21 | Update 'changed' field when traits are added or removed from collections | zsloan |
2024-08-21 | Do actual password change. | Frederick Muriuki Muriithi |
2024-08-21 | Provide email and improve UI text/notification. | Frederick Muriuki Muriithi |
2024-08-20 | Save to DB then send email...Separate the saving of the token from its sending.
| Frederick Muriuki Muriithi |
2024-08-20 | Handle the "GET" part of the change-password request...- Delete any expired tokens
- Display the UI if token is valid, else redirect with error notification.
| Frederick Muriuki Muriithi |
2024-08-20 | Pass GET parameters for correct redirection. | Frederick Muriuki Muriithi |
2024-08-20 | Fix query: Replace any existing token. | Frederick Muriuki Muriithi |
2024-08-19 | Generate token and send out "Forgot Password" email...* Generate token to use for verifying the password-change request
* Send out email with token
| Frederick Muriuki Muriithi |
2024-08-19 | Show "Forgot Password" link....Provide the user with the "Forgot Password" link, if the backend
supports it.
| Frederick Muriuki Muriithi |
2024-08-15 | Fix a bunch of linting errors. | Frederick Muriuki Muriithi |
2024-08-15 | Reduce UI complexity...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.
| Frederick Muriuki Muriithi |
2024-08-15 | Import specific classes from the datetime module. | Frederick Muriuki Muriithi |
2024-08-15 | fix: bugs with generating auth tokens | John Nduli |
2024-08-15 | fix: bugs in masquerade api | John Nduli |
2024-08-14 | fix: import timedelta in jwks | John Nduli |
2024-08-14 | refactor: move newest_jwk_with_rotation function to jwks.py...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.
| John Nduli |
2024-08-13 | Emails: Make "From" address configurable...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.
| Frederick Muriuki Muriithi |
2024-08-08 | Bug: Prevent fall-through to verification if code is expired. | Frederick Muriuki Muriithi |
2024-08-08 | Get data from form too. | Frederick Muriuki Muriithi |
2024-08-08 | Forward email to email verification page. | Frederick Muriuki Muriithi |
2024-08-07 | Log out user registration errors at the `ERROR` log-level. | Frederick Muriuki Muriithi |
2024-08-05 | Fix linting errors. | Frederick Muriuki Muriithi |
2024-08-02 | fix: use json to support parsing oauth2 requests...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
| John Nduli |
2024-08-01 | Handle generic exception and return a value.enable-key-rotation | Frederick Muriuki Muriithi |
2024-07-31 | Update all endpoints to use the `client_secret_post` auth method. | Frederick Muriuki Muriithi |
2024-07-31 | Use customised JWTBearerToken class | Frederick Muriuki Muriithi |
2024-07-31 | Extend default JWTBearerToken to include a user member. | Frederick Muriuki Muriithi |
2024-07-31 | Authenticate JWTs using all available keys. | Frederick Muriuki Muriithi |
2024-07-31 | Bug: Pass in app rather than path. | Frederick Muriuki Muriithi |
2024-07-31 | Fetch a client's JWKs from a URI | Frederick Muriuki Muriithi |
2024-07-31 | Enable registration of a public-jwks-uri for every client | Frederick Muriuki Muriithi |
2024-07-31 | Enable external configuration of session expiry period...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.
| Frederick Muriuki Muriithi |
2024-07-31 | Ignore warning from mypy. | Frederick Muriuki Muriithi |
2024-07-31 | Validate JWTs against all existing JWKs. | Frederick Muriuki Muriithi |
2024-07-31 | Remove obsoleted SSL_PRIVATE_KEY configuration...With the key rotation in place, eliminate the use of the
SSL_PRIVATE_KEY configuration which pointed to a specific non-changing
JWK.
| Frederick Muriuki Muriithi |
2024-07-31 | Update datetime references on changed import. | Frederick Muriuki Muriithi |
2024-07-31 | Retrieve newest JWK, creating a new JWK where necessary....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
| Frederick Muriuki Muriithi |
2024-07-31 | Simplify jwks_directory() function...Pass in the app object rather than a path and compute the secrets
directory within the function.
| Frederick Muriuki Muriithi |
2024-07-30 | JWT refresh: Deactivate the checks and revocation...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.
| Frederick Muriuki Muriithi |
2024-07-18 | List any/all existing JWKs...List any/all existing JWKs that the server currently supports.
| Frederick Muriuki Muriithi |
2024-07-18 | Add module to handle JWK files | Frederick Muriuki Muriithi |