Age | Commit message (Collapse) | Author |
|
|
|
|
|
In order for the group leaders (and other resource creators) to be able to
link data to the resources, the data needs to be first linked to the relevant
group.
This commit enables the system admin to link the data in MySQL to the groups.
|
|
|
|
|
|
Load the data that is attached to a particular resource together with the
resource.
List any unlinked data: useful when linking data to resources.
|
|
Provide the `linked_group_data` table to be used to link to data in the main
database.
Update the `mrna_resources`, `genotype_resources` and `phenotype_resources`
tables to rely on the `linked_group_data` table.
|
|
* scripts/index-genenetwork (worker_queue): Set default number of workers to 1
if the number of CPUs cannot be determined.
|
|
* scripts/index-genenetwork: Import Callable, Generator, Iterable and List
from typing. Type hint all functions.
|
|
When user has no roles assigned, return an empty tuple rather than
pymonad.maybe.Nothing to ease maintenance.
|
|
|
|
|
|
Provide a way to set a user as a system administrator via CLI.
This method was chosen rather that using the WebUI since most users will not
have access to the CLI. It also means that assigning system administration
privileges will not be an accident, since one has to actually run the command
manually on the CLI.
|
|
Add a new data distribution privilege
Add a new system-administrator role
|
|
* gn3/auth/authorisation/groups/models.py: Modify function to either accept or
reject join requests.
* gn3/auth/authorisation/groups/views.py: Provide endpoint to reject join
requests.
* migrations/auth/20230207_01_r0bkZ-create-group-join-requests-table.py:
Prevent user from applying to join the same group more than once.
|
|
|
|
|
|
|
|
* gn3/db/matrix.py (get_nth_matrix): New function.
Signed-off-by: Munyoki Kilyungi <me@bonfacemunyoki.com>
|
|
* gn3/db/matrix.py (get_total_versions): New function.
Signed-off-by: Munyoki Kilyungi <me@bonfacemunyoki.com>
|
|
* gn3/db/matrix.py: New file.
Signed-off-by: Munyoki Kilyungi <me@bonfacemunyoki.com>
|
|
|
|
|
|
|
|
|
|
Retrieve the token, and user in the authorisation decorator to enable checking
of privileges.
|
|
Split the views/routes into separate modules each dealing with a narrower
scope of the application to aid in maintenance, and help with making the
development easier.
|
|
|
|
The @authenticated_p decorator (and function), is an artifact of the original
development ideas and should be removed from use.
|
|
Setting the scope as a list of strings was leading to errors when attempting
to logout. This commit leaves the scope as a string to avoid the errors.
|
|
Stop treating not finding a group for a user as an error, since that is an
actual expected state in the system at some point. Rather, restore the use of
Maybe rather than using Either.
We can raise the NotFoundError at the API level rather than at database
retrival level.
|
|
|
|
Refactor to use the `.either` method call in a cleaner way.
Rework the imports.
|
|
Add endpoint to retrieve the group in which the user is a member.
|
|
|
|
Define a Protocol type to use with the `dictify` function and implement the
`dictify` methods for the various classes.
|
|
To allow for different error codes for the various exceptions, store the
error_code in the exception objects and retrieve it from there when generating
the response.
|
|
|
|
* tests/unit/test_search.py (test_apply_si_suffix_kilo,
test_apply_si_suffix_mega, test_apply_si_suffix_giga): Update docstring
indicating that we expect the exact integer value.
|
|
* gn3/api/search.py (parse_location_field): Use decimals, not floats, when
converting to megabases.
|
|
* gn3/api/search.py (parse_position_field): New function.
(parse_query): Associate the position prefix with the parse_position_field
field processor.
|
|
* gn3/api/search.py (parse_position): New function.
(parse_location_field): Use parse_position.
* tests/unit/test_search.py: Import parse_position from gn3.api.search.
(test_parse_position_close_to_zero_location): New test.
|
|
* gn3/api/search.py (parse_query): Alias the position prefix with pos.
|
|
* gn3/api/search.py (parse_query): Rename the mb prefix to position.
|
|
* gn3/api/search.py (query_subqueries, query_terms, parse_synteny_field,
is_synteny_on, remove_synteny_field): Delete functions.
(parse_query): Assume triplets mean synteny is requested.
|
|
* gn3/api/search.py (parse_location_field): Use comprehension.
|
|
|
|
|
|
* gn3/auth/authorisation/checks.py: Enable passing user to authorisation
checking function. Raise error on authorisation failure for consistent error
handling.
* gn3/auth/authorisation/groups.py: Add user to group, updating the privileges
as appropriate.
* gn3/auth/authorisation/resources.py: Fix resources querying
* gn3/auth/authorisation/roles.py: Assign/revoke roles by name
* gn3/auth/authorisation/views.py: Create group
* migrations/auth/20221108_01_CoxYh-create-the-groups-table.py: Add
group_metadata field
* tests/unit/auth/fixtures/group_fixtures.py: fix tests
* tests/unit/auth/test_groups.py: fix tests
* tests/unit/auth/test_resources.py: fix tests
* tests/unit/auth/test_roles.py: fix tests
|
|
|