Age | Commit message (Expand) | Author |
2024-10-09 | Linting: Fix minor linting errors | Frederick Muriuki Muriithi |
2024-10-09 | Fix masquerading logic...Update the code to actually use JWT bearer tokens that the older plain
authorisation tokens that were previously used.
| Frederick Muriuki Muriithi |
2024-10-09 | Update Configs: Change `OAUTH2_SCOPE` => `OAUTH2_SCOPES_SUPPORTED`...Use the OAUTH2_SCOPES_SUPPORTED application configuration variable,
that is used by the flask integration for the Authlib library to set
up the supported scopes.
| Frederick Muriuki Muriithi |
2024-10-09 | Pass on all GET parameters when redirecting. | Frederick Muriuki Muriithi |
2024-10-03 | Provide a way to change OAuth2 client secrets. | 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-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-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 | 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-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-06-17 | Fix mypy errors | Frederick Muriuki Muriithi |
2024-06-17 | Use the form's json attribute to retrieve sent data...The system uses JSON as the default communication format, so we use
the form's json attribute to get any data sent.
| Frederick Muriuki Muriithi |
2024-06-04 | Redirect appropriately when verifying emails. | Frederick Muriuki Muriithi |
2024-06-03 | Handle 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-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(...)...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-03 | Move 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-05-13 | Fix myriad of linting error...These linting errors can't be rebased into the newer commits.
| Frederick Muriuki Muriithi |
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 | Fix 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-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 |
2024-05-02 | Use user-provided values rather than hard-coded values. | Frederick Muriuki Muriithi |
2024-05-02 | Add error checking to form input data. | Frederick Muriuki Muriithi |
2024-04-24 | Move the errors module up one level to break circular dependencies. | Frederick Muriuki Muriithi |
2024-03-13 | Define Resource/ResourceCategory using frozen dataclass....* gn_auth/auth/authorisation/resources/base.py: Import dataclass and
asdict. Remove NamedTuple and dictify.
(ResourceCategory): Use frozen dataclass.
(ResourceCategory.dictify): Delete.
(Resource): Use frozen dataclass.
(Resource.dictify): Delete.
* gn_auth/auth/authorisation/resources/models.py: Delete dictify
import.
(assign_resource_user): Replace dictify with asdict.
(unassign_resource_user): Ditto.
* gn_auth/auth/authorisation/resources/views.py: Import asdict.
Remove dictify import.
(list_resource_categories): Replace dictify with asdict.
(create_resource): Ditto.
(view_resource): Ditto.
(__safe_get_requests_page__): Ditto.
* gn_auth/auth/authorisation/users/views.py:
(user_resources): Replace dictify with asdict.
Signed-off-by: Munyoki Kilyungi <me@bonfacemunyoki.com>
| Munyoki Kilyungi |
2024-03-13 | Define Privilege/Role using frozen dataclass....* gn_auth/auth/authorisation/privileges.py: Import dataclass. Remove
NamedTuple import.
(Privilege): Use frozen dataclass.
(Privelege.dictify): Delete.
* gn_auth/auth/authorisation/resources/groups/views.py: Import
dataclasses.asdict.
(group_privileges): Replace dictify with asdict.
(add_priv_to_role): Ditto.
(delete_priv_from_role): Ditto.
* gn_auth/auth/authorisation/resources/models.py:
(assign_resource_user): Replace dictify with asdict.
(unassign_resource_user): Ditto.
* gn_auth/auth/authorisation/resources/system/views.py: Import
dataclasses.asdict. Remove dictify import.
(system_roles): Replace dictify with asdict.
* gn_auth/auth/authorisation/resources/views.py:
(resource_users): Replace dictify with asdict.
(resources_authorisation): Ditto.
* gn_auth/auth/authorisation/roles/models.py: Remove dictify and
NameTuple import.
(Role): Use frozen dataclass.
(Role.dictify): Replace dictify(priv) with asdict(priv).
* gn_auth/auth/authorisation/roles/views.py: Import
dataclasses.asdict. Remove dictify import.
(view_role): Replace dictify with asdict.
* gn_auth/auth/authorisation/users/views.py:
(user_roles): Replace dictify with asdict.
Signed-off-by: Munyoki Kilyungi <me@bonfacemunyoki.com>
| Munyoki Kilyungi |
2024-03-13 | Define Group using a frozen dataclass....* gn_auth/auth/authorisation/data/genotypes.py: Import
dataclasses.asdict.
(link_genotype_data): Replace dictify with asdict.
* gn_auth/auth/authorisation/data/mrna.py: Import dataclasses.asdict.
(link_mrna_data): Replace dictify with asdict.
* gn_auth/auth/authorisation/data/phenotypes.py: Import
dataclasses.asdict.
(link_phenotype_data): Replace dictify with asdict.
* gn_auth/auth/authorisation/resources/groups/models.py: Import
dataclass.
(Group): Use frozen dataclass.
(Group.dictify): Delete.
(GroupRole.dictify): Replace dictify with asdict.
* gn_auth/auth/authorisation/resources/groups/views.py: Import
dataclasses.asdict. Remove dictify import.
(list_groups): Replace dictify with asdict.
(create_group): Ditto.
* gn_auth/auth/authorisation/resources/views.py:
(resource_users): Replace dictify with asdict.
* gn_auth/auth/authorisation/users/views.py: Import
dataclasses.asdict. Remove dictify import.
(user_details): Replace dictify with asdict.
(user_group): Ditto.
Signed-off-by: Munyoki Kilyungi <me@bonfacemunyoki.com>
| Munyoki Kilyungi |
2024-03-13 | Define User using a frozen dataclass....* gn_auth/auth/authentication/users.py: Import dataclass. Remove
NamedTuple and Tuple import.
(User): Use a frozen dataclass.
(User.get_user_id): Delete.
(User.dictify): Ditto.
* gn_auth/auth/authorisation/data/views.py: Import dataclasses.dict.
(authorisation): Replace user._asdict() with asdict(user).
(metadata_resources): Ditto.
* gn_auth/auth/authorisation/resources/groups/views.py:
(group_members): Replace dictify with asdict.
* gn_auth/auth/authorisation/resources/models.py: Import
dataclasses.asdict.
(assign_resource_user): Replace dictify(user) with asdict(user).
(unassign_resource_user): Ditto.
* gn_auth/auth/authorisation/resources/views.py:
(resource_users): Replace dictify with asdict.
* gn_auth/auth/authorisation/users/masquerade/views.py: Import
dataclasses.asdict.
(masquerade): Replace masq_user._asdict() with asdict(masq_user).
* gn_auth/auth/authorisation/users/views.py:
(list_all_users): Replace dictify with asdict.
Signed-off-by: Munyoki Kilyungi <me@bonfacemunyoki.com>
| Munyoki Kilyungi |
2024-02-28 | Handle the "NotFoundError" exception at the route level...Handle the "NotFoundError" exception at the route level, since if we
do not, the application level handler takes over and simply returns a
JSON response with the details of the failure.
| Frederick Muriuki Muriithi |
2023-12-18 | Provide the correct Redis key...Previously, when the user would request to either import or delete the
collections they had created before logging in, the system would try
deleting the collections from the wrong key, leading to the
collections still showing up.
This commit fixes that by providing the code with the correct Redis
key to act upon.
| Frederick Muriuki Muriithi |