Age | Commit message (Expand) | Author |
2023-06-06 | Rename gn:geoPlatform -> gn:geoPlatformUrl...Signed-off-by: Munyoki Kilyungi <me@bonfacemunyoki.com>
| Munyoki Kilyungi |
2023-06-06 | Match how dataset metadata is fetched with GN1...* gn3/db/rdf.py (sparql_query): Parse CONSTRUCTS and SELECTS
differently.
(strip_url): Rename to ...
(get_url_local_name): ... this.
(get_dataset_metadata): Fetch extra fields in RDF.
Signed-off-by: Munyoki Kilyungi <me@bonfacemunyoki.com>
| Munyoki Kilyungi |
2023-06-06 | Replace taxon prefix with ncbiTaxon which references NCBI...Signed-off-by: Munyoki Kilyungi <me@bonfacemunyoki.com>
| Munyoki Kilyungi |
2023-06-06 | Rename dataset_metadata -> dataset...Signed-off-by: Munyoki Kilyungi <me@bonfacemunyoki.com>
| Munyoki Kilyungi |
2023-06-05 | Logging: Don't allow getting user info to stop application starting...In certain scenarios (probably due to host contamination) the effective UID of
the running application is not the expected "genenetwork" user, rather, it is
a user on the host system, which leads to the error:
KeyError: 'getpwuid(): uid not found: 1000'
This commit prevents the application from failing in such a case, but still
logs out such weirdness.
| Frederick Muriuki Muriithi |
2023-06-05 | Logging: Get user information. | Frederick Muriuki Muriithi |
2023-06-05 | Logging: Get guix profile information if present....Useful for debugging issues within the guix containers.
| Frederick Muriuki Muriithi |
2023-06-05 | Logging: Get info about python...This information is useful to assist with debugging issues within the guix
containers.
| Frederick Muriuki Muriithi |
2023-06-05 | Handle unhandled SQLite3 errors. | Frederick Muriuki Muriithi |
2023-06-02 | Replace SELECT with CONSTRUCT when fetching a dataset's metadata...* gn3/db/rdf.py: Importh pymonad.Nothing.
(get_dataset_metadata): Replace SELECT with CONSTRUCT.
Signed-off-by: Munyoki Kilyungi <me@bonfacemunyoki.com>
| Munyoki Kilyungi |
2023-06-02 | Create a function for stripping the last bit from a URL...* gn3/db/rdf.py: Import unquote and urlparse.
(strip_url): New function.
Signed-off-by: Munyoki Kilyungi <me@bonfacemunyoki.com>
| Munyoki Kilyungi |
2023-05-30 | Provide logout link. | Frederick Muriuki Muriithi |
2023-05-30 | auth: Change check for client secret...We are saving the client secret in an encrypted form, meaning we have to
verify that the CLIENT_SECRET that is provided is the same one as was
generated at registration in a different way.
Initially, I was doing a direct comparison, having saved the CLIENT_SECRET
value as unencrypted plain-text.
| Frederick Muriuki Muriithi |
2023-05-29 | auth: Enable registration of OAuth2 clients...Add UI and code to enable the administrative user to register new OAuth2
clients that can access the API server.
| Frederick Muriuki Muriithi |
2023-05-29 | Enable Administrator login on GN3...* gn3/auth/authentication/oauth2/views.py: Remove endpoint
* gn3/auth/authorisation/users/admin/__init__.py: New admin module
* gn3/auth/authorisation/users/admin/ui.py: New admin module
* gn3/auth/authorisation/users/admin/views.py: New admin module
* gn3/auth/views.py: Use new admin module
* gn3/errors.py: Fix linting errors
* gn3/templates/login.html: New html template
* main.py: Fix linting errors
| Frederick Muriuki Muriithi |
2023-05-27 | Document Use of OAuth2 Clients...* docs/authentication_and_authorisation/oauth2_clients.md: New documentation
* gn3/auth/authentication/oauth2/server.py: Raise appropriate error if no
client is found.
* gn3/auth/authentication/oauth2/views.py: Handle exception in the case where
a UI should be presented to the user, rather than presenting the raw JSON
response to the user.
* gn3/errors.py: Handle any authlib OAuth2Error at the application's top-level
* gn3/templates/oauth2/oauth2_error.html: Handle any authlib OAuth2Error at
the application's top-level
| Frederick Muriuki Muriithi |
2023-05-25 | Script to assign existing data to publicly-visible resources...A script to assign existing data not assigned to any group to publicly-visible
resources.
| Frederick Muriuki Muriithi |
2023-05-25 | Set whether resource is publicly viewable on creation | Frederick Muriuki Muriithi |
2023-05-23 | auth: Enable user masquerade...Enable users with the appropriate privileges to masquerade as other users by
providing an endpoint that provides a new token for the "masqueradee"
| Frederick Muriuki Muriithi |
2023-05-22 | Use string literal concatenation to make genofile_path line shorter | zsloan |
2023-05-22 | Fix quotes when setting genofile_path | zsloan |
2023-05-22 | Fix return typing for get_trait_sample_data | zsloan |
2023-05-22 | Change type from 'any' to 'Any' | zsloan |
2023-05-22 | Use f-string for setting genofile_path...Also set default value for os.environ.get("GENENETWORK_FILES")
| zsloan |
2023-05-22 | Include encoding in open statement to address pylint W1514 | zsloan |
2023-05-22 | Initialize 'line'; previous pylint complained because line might not be initi... | zsloan |
2023-05-22 | Use 'with open()' syntax...Initialize samplelist variable
| zsloan |
2023-05-22 | Remove unused variable this_data | zsloan |
2023-05-22 | Include all samples in trait sample data...This is necessary in order to allow for editing the values of samples that don't currently have values
| zsloan |
2023-05-22 | Fix sample data CSV query to only fetch distinct samples...There's probably a better way to fix this query (it was previously returning each sample twice), but DISTINCT was the easiest way I could come up with
| zsloan |
2023-05-22 | Fix get_trait_sample_data function | zsloan |
2023-05-22 | Fix retrieve_sample_list function to correctly get genofile_path | zsloan |
2023-05-22 | Commit update/insert queries, since they don't seem to be executed otherwise ... | zsloan |
2023-05-22 | Add function for retrieving group name (given group ID) | zsloan |
2023-05-22 | Add function for retrieving phenotype sample data as dict | zsloan |
2023-05-22 | Add function for retrieving samplelist from .geno file | zsloan |
2023-05-19 | auth: Provide user and resource info in the trait data...Provide the user and resource_id information in each trait's authorisation
details to help with linking on the UI end.
| Frederick Muriuki Muriithi |
2023-05-19 | auth: Check for json on authorisation endpoint. Add user data....Ensure the authorisation endpoint expects only JSON.
Add the user data to the response from the endpoint.
| Frederick Muriuki Muriithi |
2023-05-18 | auth: Rename collections...Enable renaming collections.
| Frederick Muriuki Muriithi |
2023-05-18 | auth: user collections: Add and/or remove traits. | Frederick Muriuki Muriithi |
2023-05-17 | auth: Delete collections by ID. | Frederick Muriuki Muriithi |
2023-05-17 | auth: Import/Delete Anonymous Collections...Add code to enable the importation/deletion of anonymous collections in the
active session to the authenticated user's collections.
| Frederick Muriuki Muriithi |
2023-05-16 | auth: View a collection by its ID. | Frederick Muriuki Muriithi |
2023-05-15 | collections: Move code to new package. Create new collections....Move the code to a new package.
Enable the creation of new collection by both authenticated and anonymous
users.
| Frederick Muriuki Muriithi |
2023-05-12 | auth: Provide separate endpoint for anonymous collections. | Frederick Muriuki Muriithi |
2023-05-11 | auth: Fix bug with migration of user collections...The code, as written previously had a subtle bug - if the user created a new
collection before they had tried accessing their list of collections, the
older code would not have migrated the older collections.
This commit fixes that by enabling the migration of older collections, whether
or not the user has created a collection with their new accounts.
| Frederick Muriuki Muriithi |
2023-05-10 | auth: Add the /oauth2/user/collections/list endpoint...Add an endpoint to list a user's collections. This only works for logged in
users.
| Frederick Muriuki Muriithi |
2023-05-10 | auth: Only check deliverability of emails at registration....Check only that the email format is correct, but don't bother with the
deliverability check during authentication. The deliverability check is done
at registration.
| Frederick Muriuki Muriithi |
2023-05-09 | auth: Implement "Authorization Code Flow"...Implement the "Authorization Code Flow" for the authentication of users.
* gn3/auth/authentication/oauth2/grants/authorisation_code_grant.py: query and
save the authorisation code.
* gn3/auth/authentication/oauth2/models/authorization_code.py: Implement the
`AuthorisationCode` model
* gn3/auth/authentication/oauth2/models/oauth2client.py: Fix typo
* gn3/auth/authentication/oauth2/server.py: Register the
`AuthorisationCodeGrant` grant with the server.
* gn3/auth/authentication/oauth2/views.py: Implement `/authorise` endpoint
* gn3/templates/base.html: New HTML Templates of authorisation UI
* gn3/templates/common-macros.html: New HTML Templates of authorisation UI
* gn3/templates/oauth2/authorise-user.html: New HTML Templates of
authorisation UI
* main.py: Allow both "code" and "token" response types.
auth/implement-authorization-code-flow | Frederick Muriuki Muriithi |
2023-04-27 | auth: Retrieve `system:*` privileges from resource roles...With the assignment of `system:*` privileges to roles, we need to check for
their existence when doing authorisation.
This commit provides a hack for that, seeing as user groups (and the system
itself) are not treated as resources, and therefore the way to fetch the
privileges is not entirely consistent.
| Frederick Muriuki Muriithi |