aboutsummaryrefslogtreecommitdiff
path: root/gn_auth/auth/authorisation/users
AgeCommit message (Collapse)Author
2024-10-09Update Configs: Change `OAUTH2_SCOPE` => `OAUTH2_SCOPES_SUPPORTED`Frederick Muriuki Muriithi
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.
2024-10-09Pass on all GET parameters when redirecting.Frederick Muriuki Muriithi
2024-10-03Provide a way to change OAuth2 client secrets.Frederick Muriuki Muriithi
2024-08-30If config variables are not set, return empty string.Frederick Muriuki Muriithi
2024-08-21Only import anonymous collections if they contain traitszsloan
2024-08-21Update 'changed' field when traits are added or removed from collectionszsloan
2024-08-21Do actual password change.Frederick Muriuki Muriithi
2024-08-21Provide email and improve UI text/notification.Frederick Muriuki Muriithi
2024-08-20Save to DB then send emailFrederick Muriuki Muriithi
Separate the saving of the token from its sending.
2024-08-20Handle the "GET" part of the change-password requestFrederick Muriuki Muriithi
- Delete any expired tokens - Display the UI if token is valid, else redirect with error notification.
2024-08-20Pass GET parameters for correct redirection.Frederick Muriuki Muriithi
2024-08-20Fix query: Replace any existing token.Frederick Muriuki Muriithi
2024-08-19Generate token and send out "Forgot Password" emailFrederick Muriuki Muriithi
* Generate token to use for verifying the password-change request * Send out email with token
2024-08-15Fix a bunch of linting errors.Frederick Muriuki Muriithi
2024-08-15Reduce UI complexityFrederick Muriuki Muriithi
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.
2024-08-15Import specific classes from the datetime module.Frederick Muriuki Muriithi
2024-08-15fix: bugs with generating auth tokensJohn Nduli
2024-08-15fix: bugs in masquerade apiJohn Nduli
2024-08-13Emails: Make "From" address configurableFrederick Muriuki Muriithi
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.
2024-08-08Bug: Prevent fall-through to verification if code is expired.Frederick Muriuki Muriithi
2024-08-08Forward email to email verification page.Frederick Muriuki Muriithi
2024-08-07Log out user registration errors at the `ERROR` log-level.Frederick Muriuki Muriithi
2024-07-31Enable registration of a public-jwks-uri for every clientFrederick Muriuki Muriithi
2024-07-31Enable external configuration of session expiry periodFrederick Muriuki Muriithi
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.
2024-06-17Fix mypy errorsFrederick Muriuki Muriithi
2024-06-17Use the form's json attribute to retrieve sent dataFrederick Muriuki Muriithi
The system uses JSON as the default communication format, so we use the form's json attribute to get any data sent.
2024-06-04Redirect appropriately when verifying emails.Frederick Muriuki Muriithi
2024-06-03Handle unverified emailsFrederick Muriuki Muriithi
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.
2024-06-03Provide endpoint for verification and do verificationFrederick Muriuki Muriithi
2024-06-03Send verification email on registration.Frederick Muriuki Muriithi
2024-06-03Use asdict(...)Frederick Muriuki Muriithi
Use dataclasses.asdict function to generate the dict that will be used for the response rather than building it up manually.
2024-06-03Move user creation from db resultset into static methodFrederick Muriuki Muriithi
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.
2024-05-13Fix myriad of linting errorFrederick Muriuki Muriithi
These linting errors can't be rebased into the newer commits.
2024-05-02Delete a client's public key.Frederick Muriuki Muriithi
2024-05-02Register a client's public key(s).Frederick Muriuki Muriithi
2024-05-02Fix editing of grant_typesFrederick Muriuki Muriithi
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.
2024-05-02Use same name as register-client formFrederick Muriuki Muriithi
2024-05-02Make registration of grant-types more flexible.Frederick Muriuki Muriithi
2024-05-02use dataclasses' asdict() function.Frederick Muriuki Muriithi
2024-05-02Use user-provided values rather than hard-coded values.Frederick Muriuki Muriithi
2024-05-02Add error checking to form input data.Frederick Muriuki Muriithi
2024-04-24Move the errors module up one level to break circular dependencies.Frederick Muriuki Muriithi
2024-03-13Define Resource/ResourceCategory using frozen dataclass.Munyoki Kilyungi
* 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>
2024-03-13Define Privilege/Role using frozen dataclass.Munyoki Kilyungi
* 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>
2024-03-13Define Group using a frozen dataclass.Munyoki Kilyungi
* 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>
2024-03-13Define User using a frozen dataclass.Munyoki Kilyungi
* 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>
2024-02-28Handle the "NotFoundError" exception at the route levelFrederick Muriuki Muriithi
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.
2023-12-18Provide the correct Redis keyFrederick Muriuki Muriithi
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.
2023-11-22Move system admin creationFrederick Muriuki Muriithi
Make the system admin creation code part of the core system, and simply call it from the script(s). This will help with maintenance, since the changes are done in a single place only.
2023-11-13Update check for adminsFrederick Muriuki Muriithi