aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-02-10auth: CLI: Provide a way to set an existing user as a system adminFrederick Muriuki Muriithi
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.
2023-02-10auth: migrations: new privilege and roleFrederick Muriuki Muriithi
Add a new data distribution privilege Add a new system-administrator role
2023-02-09auth: Reject request to join a group.Frederick Muriuki Muriithi
* 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.
2023-02-09auth: users: Check whether a user has an active join request.Frederick Muriuki Muriithi
2023-02-08auth: groups: handle join requests.Frederick Muriuki Muriithi
2023-02-07auth: groups: Enable users to request to join group.Frederick Muriuki Muriithi
2023-02-06Get the N-th matrix given N, an index valueMunyoki Kilyungi
* gn3/db/matrix.py (get_nth_matrix): New function. Signed-off-by: Munyoki Kilyungi <me@bonfacemunyoki.com>
2023-02-06Get total number of versions that a database hasMunyoki Kilyungi
* gn3/db/matrix.py (get_total_versions): New function. Signed-off-by: Munyoki Kilyungi <me@bonfacemunyoki.com>
2023-02-06Add method to fetch the current matrixMunyoki Kilyungi
* gn3/db/matrix.py: New file. Signed-off-by: Munyoki Kilyungi <me@bonfacemunyoki.com>
2023-02-06auth: resource: Enable viewing the details of a resource.Frederick Muriuki Muriithi
2023-02-03auth: commit missing module.Frederick Muriuki Muriithi
2023-02-03oauth: enable resource creationFrederick Muriuki Muriithi
2023-02-03auth: tests: mock token acquisition. Fix minor bugs.Frederick Muriuki Muriithi
2023-02-02auth: Improve authorisationFrederick Muriuki Muriithi
Retrieve the token, and user in the authorisation decorator to enable checking of privileges.
2023-02-02auth: Reorganise modules/packages for easier dev and maintenanceFrederick Muriuki Muriithi
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.
2023-01-31auth: Retrieve group members.Frederick Muriuki Muriithi
2023-01-31auth: Remove the @authenticated_p decoratorFrederick Muriuki Muriithi
The @authenticated_p decorator (and function), is an artifact of the original development ideas and should be removed from use.
2023-01-31auth: Set the token scope as a string, not a listFrederick Muriuki Muriithi
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.
2023-01-30auth: Do not treat not finding a group as an errorFrederick Muriuki Muriithi
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.
2023-01-30auth: API: retrieve resourcesFrederick Muriuki Muriithi
2023-01-30auth: groups: cleanup codeFrederick Muriuki Muriithi
Refactor to use the `.either` method call in a cleaner way. Rework the imports.
2023-01-30auth: API: Retrieve a user's groupFrederick Muriuki Muriithi
Add endpoint to retrieve the group in which the user is a member.
2023-01-28auth: Enable retrieval of a role by id.Frederick Muriuki Muriithi
2023-01-28auth: rework dictifyFrederick Muriuki Muriithi
Define a Protocol type to use with the `dictify` function and implement the `dictify` methods for the various classes.
2023-01-28auth: Store error_code in Exception for flexibilityFrederick Muriuki Muriithi
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.
2023-01-25Some commentsPjotr Prins
2023-01-24tests: Expect exact integer value when applying SI suffix.Arun Isaac
* 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.
2023-01-24search: Use decimals, not floats, when converting to megabases.Arun Isaac
* gn3/api/search.py (parse_location_field): Use decimals, not floats, when converting to megabases.
2023-01-24search: Support SI suffixes and point locations.Arun Isaac
* gn3/api/search.py (parse_position_field): New function. (parse_query): Associate the position prefix with the parse_position_field field processor.
2023-01-24search: Abstract out parsing of position spec into separate function.Arun Isaac
* 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.
2023-01-24search: Alias the position prefix with pos.Arun Isaac
* gn3/api/search.py (parse_query): Alias the position prefix with pos.
2023-01-24search: Rename the mb prefix to position.Arun Isaac
* gn3/api/search.py (parse_query): Rename the mb prefix to position.
2023-01-24search: Assume triplets mean synteny is requested.Arun Isaac
* 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.
2023-01-24search: Use comprehension when splitting location.Arun Isaac
* gn3/api/search.py (parse_location_field): Use comprehension.
2023-01-24docs: Add information on running the OAuth2 server without HTTPSFrederick Muriuki Muriithi
2023-01-23auth: Add missing moduleFrederick Muriuki Muriithi
2023-01-23auth: create group: Fix group creation.Frederick Muriuki Muriithi
* 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
2023-01-21tests: roles - Extract values from Maybe objectFrederick Muriuki Muriithi
2023-01-21tests: Fix linting errorsFrederick Muriuki Muriithi
2023-01-21auth: Groups - Fetch all existing groupsFrederick Muriuki Muriithi
2023-01-21auth: Roles - Fix bug with role retrieval.Frederick Muriuki Muriithi
2023-01-21auth: Fix saving of scope values. Add scope items.Frederick Muriuki Muriithi
2023-01-20mypy: minor fixes to typing errorsFrederick Muriuki Muriithi
2023-01-20auth: rename revocation endpointFrederick Muriuki Muriithi
2023-01-20auth: Save token with updateFrederick Muriuki Muriithi
If the token already exists, then update the details rather than trying to insert.
2023-01-20auth: Setup the user correctlyFrederick Muriuki Muriithi
* gn3/auth/authentication/oauth2/grants/password_grant.py: Return user rather than boolean * gn3/auth/authentication/oauth2/models/oauth2client.py: provide optional `user` argument to allow flexibility in setting up the client's user * gn3/auth/authentication/oauth2/models/oauth2token.py: Set token and client user correctly * gn3/auth/authentication/oauth2/server.py: Set token user from the request
2023-01-20auth: Add development utils/toolsFrederick Muriuki Muriithi
To avoid having to manually rebuild some default data for exploration of concepts while developing the system, add a way to build up the test users and oauth2 clients to use for testing.
2023-01-19tests: Add unit tests for search.Arun Isaac
* tests/unit/test_search.py: New file.
2023-01-19search: Downcase before applying SI suffix.Arun Isaac
* gn3/api/search.py (apply_si_suffix): Downcase before applying SI suffix.
2023-01-19search: Use decimals, not floats, to manipulate range limits.Arun Isaac
Decimals are exact and do not introduce tiny errors in the range limits like floats are wont to do. * gn3/api/search.py: Import Decimal from decimal. (apply_si_suffix): Use decimals, not floats, to manipulate range limits.