aboutsummaryrefslogtreecommitdiff
path: root/gn3/auth
AgeCommit message (Collapse)Author
2023-03-08Replace Bcrypt with Argon2 for better security.Frederick Muriuki Muriithi
Bcrypt is now somewhat vulnerable to offline cracking, so we move our password hashing over to Argon2.
2023-03-07auth: group_roles: Enable addition/deletion of privilegesFrederick Muriuki Muriithi
2023-03-07auth: resources: unassign roles on resource from a user.Frederick Muriuki Muriithi
2023-03-07auth: user_by_id: Return a user or raise an exceptionFrederick Muriuki Muriithi
Fetching the user by id should return the user, or raise an exception. We get rid of the Maybe monad here since it is leading to some weird code flows - probably the wrong monad to use here.
2023-03-06auth: resources: Enable assigning a user roles on resourcesFrederick Muriuki Muriithi
2023-03-06auth: resources: Link role's group to the resource's groupFrederick Muriuki Muriithi
2023-03-06auth: resources: Get all users with access to a particular resource.Frederick Muriuki Muriithi
2023-03-03auth: Enable viewing group role details.Frederick Muriuki Muriithi
2023-03-03auth: group roles: enable creation and listing of group roles.Frederick Muriuki Muriithi
2023-03-02auth: user registration: Rework error checking. Add email validationFrederick Muriuki Muriithi
2023-02-28auth: Unlink data from resourcesdata-access-levels-endpointFrederick Muriuki Muriithi
Enable the data editor to unlink data from a particular resource.
2023-02-28auth: Unlink data from resourcesFrederick Muriuki Muriithi
Enable the data editor to unlink data from a particular resource.
2023-02-27auth: Endpoint to get access levels for dataFrederick Muriuki Muriithi
When the endpoint is accessed with a list of traits, it should/will respond with the access privileges for each of the traits attached for the active user.
2023-02-24auth: resources: Fix query for data not linked to resourcesFrederick Muriuki Muriithi
2023-02-24auth: resources: Fix queries loading resources data.Frederick Muriuki Muriithi
2023-02-24auth: resources: Link data to resources.Frederick Muriuki Muriithi
2023-02-23auth: Link data in MySQL to the groups (in SQLite)Frederick Muriuki Muriithi
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.
2023-02-22auth: List data not linked to any group.Frederick Muriuki Muriithi
2023-02-21auth: db: DEBUG: Output quer(y|ies) that were run.Frederick Muriuki Muriithi
2023-02-21auth: resources: Attach resource data and list unlinked data.Frederick Muriuki Muriithi
Load the data that is attached to a particular resource together with the resource. List any unlinked data: useful when linking data to resources.
2023-02-10Return empty tuple rather than NothingFrederick Muriuki Muriithi
When user has no roles assigned, return an empty tuple rather than pymonad.maybe.Nothing to ease maintenance.
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-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-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-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