about summary refs log tree commit diff
path: root/gn_auth/auth
diff options
context:
space:
mode:
Diffstat (limited to 'gn_auth/auth')
-rw-r--r--gn_auth/auth/__init__.py3
-rw-r--r--gn_auth/auth/authorisation/checks.py3
-rw-r--r--gn_auth/auth/authorisation/data/genotypes.py11
-rw-r--r--gn_auth/auth/authorisation/data/mrna.py11
-rw-r--r--gn_auth/auth/authorisation/data/phenotypes.py12
-rw-r--r--gn_auth/auth/authorisation/data/views.py30
-rw-r--r--gn_auth/auth/authorisation/groups/data.py11
-rw-r--r--gn_auth/auth/authorisation/groups/models.py6
-rw-r--r--gn_auth/auth/authorisation/groups/views.py8
-rw-r--r--gn_auth/auth/authorisation/privileges.py4
-rw-r--r--gn_auth/auth/authorisation/resources/checks.py4
-rw-r--r--gn_auth/auth/authorisation/resources/models.py8
-rw-r--r--gn_auth/auth/authorisation/resources/views.py4
-rw-r--r--gn_auth/auth/authorisation/roles/models.py9
-rw-r--r--gn_auth/auth/authorisation/roles/views.py4
-rw-r--r--gn_auth/auth/authorisation/users/__init__.py1
-rw-r--r--gn_auth/auth/authorisation/users/admin/ui.py9
-rw-r--r--gn_auth/auth/authorisation/users/admin/views.py8
-rw-r--r--gn_auth/auth/authorisation/users/collections/models.py2
-rw-r--r--gn_auth/auth/authorisation/users/collections/views.py13
-rw-r--r--gn_auth/auth/authorisation/users/masquerade/models.py10
-rw-r--r--gn_auth/auth/authorisation/users/masquerade/views.py10
-rw-r--r--gn_auth/auth/authorisation/users/models.py10
-rw-r--r--gn_auth/auth/authorisation/users/views.py6
24 files changed, 99 insertions, 98 deletions
diff --git a/gn_auth/auth/__init__.py b/gn_auth/auth/__init__.py
index a28498d..4f1d960 100644
--- a/gn_auth/auth/__init__.py
+++ b/gn_auth/auth/__init__.py
@@ -1,5 +1,2 @@
 """Top-Level `Auth` module"""
-from . import authorisation
-from . import authentication
 
-from .views import oauth2
diff --git a/gn_auth/auth/authorisation/checks.py b/gn_auth/auth/authorisation/checks.py
index 46a51fe..55af0b1 100644
--- a/gn_auth/auth/authorisation/checks.py
+++ b/gn_auth/auth/authorisation/checks.py
@@ -4,11 +4,10 @@ from typing import Callable
 
 from flask import request, current_app as app
 
-from gn_auth.auth.db import sqlite3 as db
-
 from . import privileges as auth_privs
 from .errors import InvalidData, AuthorisationError
 
+from ..db import sqlite3 as db
 from ..authentication.oauth2.resource_server import require_oauth
 
 def __system_privileges_in_roles__(conn, user):
diff --git a/gn_auth/auth/authorisation/data/genotypes.py b/gn_auth/auth/authorisation/data/genotypes.py
index f5cf11c..818f72d 100644
--- a/gn_auth/auth/authorisation/data/genotypes.py
+++ b/gn_auth/auth/authorisation/data/genotypes.py
@@ -4,11 +4,12 @@ from typing import Iterable
 
 from MySQLdb.cursors import DictCursor
 
-import gn_auth.auth.db.sqlite3 as authdb
-import gn_auth.auth.db.mariadb as gn3db
-from gn_auth.auth.dictify import dictify
-from gn_auth.auth.authorisation.checks import authorised_p
-from gn_auth.auth.authorisation.groups.models import Group
+from ..checks import authorised_p
+from ..groups.models import Group
+
+from ...dictify import dictify
+from ...db import mariadb as gn3db
+from ...db import sqlite3 as authdb
 
 def linked_genotype_data(conn: authdb.DbConnection) -> Iterable[dict]:
     """Retrive genotype data that is linked to user groups."""
diff --git a/gn_auth/auth/authorisation/data/mrna.py b/gn_auth/auth/authorisation/data/mrna.py
index b80ffe5..53f9bf9 100644
--- a/gn_auth/auth/authorisation/data/mrna.py
+++ b/gn_auth/auth/authorisation/data/mrna.py
@@ -3,11 +3,12 @@ import uuid
 from typing import Iterable
 from MySQLdb.cursors import DictCursor
 
-import gn_auth.auth.db.sqlite3 as authdb
-import gn_auth.auth.db.mariadb as gn3db
-from gn_auth.auth.dictify import dictify
-from gn_auth.auth.authorisation.checks import authorised_p
-from gn_auth.auth.authorisation.groups.models import Group
+from ..checks import authorised_p
+from ..groups.models import Group
+
+from ...dictify import dictify
+from ...db import sqlite3 as authdb
+from ...db import mariadb as gn3db
 
 def linked_mrna_data(conn: authdb.DbConnection) -> Iterable[dict]:
     """Retrieve mRNA Assay data that is linked to user groups."""
diff --git a/gn_auth/auth/authorisation/data/phenotypes.py b/gn_auth/auth/authorisation/data/phenotypes.py
index 0220201..84fc089 100644
--- a/gn_auth/auth/authorisation/data/phenotypes.py
+++ b/gn_auth/auth/authorisation/data/phenotypes.py
@@ -4,11 +4,13 @@ from typing import Any, Iterable
 
 from MySQLdb.cursors import DictCursor
 
-import gn_auth.auth.db.sqlite3 as authdb
-import gn_auth.auth.db.mariadb as gn3db
-from gn_auth.auth.dictify import dictify
-from gn_auth.auth.authorisation.checks import authorised_p
-from gn_auth.auth.authorisation.groups.models import Group
+
+from ..checks import authorised_p
+from ..groups.models import Group
+
+from ...dictify import dictify
+from ...db import sqlite3 as authdb
+from ...db import mariadb as gn3db
 
 def linked_phenotype_data(
         authconn: authdb.DbConnection, gn3conn: gn3db.DbConnection,
diff --git a/gn_auth/auth/authorisation/data/views.py b/gn_auth/auth/authorisation/data/views.py
index 03b416f..3c49ae5 100644
--- a/gn_auth/auth/authorisation/data/views.py
+++ b/gn_auth/auth/authorisation/data/views.py
@@ -10,32 +10,30 @@ from MySQLdb.cursors import DictCursor
 from authlib.integrations.flask_oauth2.errors import _HTTPException
 from flask import request, jsonify, Response, Blueprint, current_app as app
 
-import gn_auth.auth.db.mariadb as gn3db
-
 from gn_auth import jobs
 from gn_auth.commands import run_async_cmd
 
-from gn_auth.auth.db import sqlite3 as db
-from gn_auth.auth.db.sqlite3 import with_db_connection
+from ...db import sqlite3 as db
+from ...db import mariadb as gn3db
+from ...db.sqlite3 import with_db_connection
 
-from gn_auth.auth.authorisation.checks import require_json
-from gn_auth.auth.authorisation.errors import InvalidData, NotFoundError
+from ..checks import require_json
+from ..errors import InvalidData, NotFoundError
 
-from gn_auth.auth.authorisation.groups.models import group_by_id
+from ..groups.models import group_by_id
 
-from gn_auth.auth.authorisation.users.models import user_resource_roles
+from ..users.models import user_resource_roles
 
-from gn_auth.auth.authorisation.resources.checks import authorised_for
-from gn_auth.auth.authorisation.resources.models import (
+from ..resources.checks import authorised_for
+from ..resources.models import (
     user_resources, public_resources, attach_resources_data)
 
-from gn_auth.auth.authentication.users import User
-from gn_auth.auth.authentication.oauth2.resource_server import require_oauth
+from ...authentication.users import User
+from ...authentication.oauth2.resource_server import require_oauth
 
-from gn_auth.auth.authorisation.data.phenotypes import link_phenotype_data
-from gn_auth.auth.authorisation.data.mrna import link_mrna_data, ungrouped_mrna_data
-from gn_auth.auth.authorisation.data.genotypes import (
-    link_genotype_data, ungrouped_genotype_data)
+from ..data.phenotypes import link_phenotype_data
+from ..data.mrna import link_mrna_data, ungrouped_mrna_data
+from ..data.genotypes import link_genotype_data, ungrouped_genotype_data
 
 data = Blueprint("data", __name__)
 
diff --git a/gn_auth/auth/authorisation/groups/data.py b/gn_auth/auth/authorisation/groups/data.py
index a73ae3d..1650405 100644
--- a/gn_auth/auth/authorisation/groups/data.py
+++ b/gn_auth/auth/authorisation/groups/data.py
@@ -1,11 +1,12 @@
 """Handles the resource objects' data."""
 from MySQLdb.cursors import DictCursor
 
-from gn_auth.auth.db import mariadb as gn3db
-import gn_auth.auth.db.sqlite3 as authdb
-from gn_auth.auth.authorisation.groups import Group
-from gn_auth.auth.authorisation.checks import authorised_p
-from gn_auth.auth.authorisation.errors import NotFoundError
+from ..groups import Group
+from ..checks import authorised_p
+from ..errors import NotFoundError
+
+from ...db import mariadb as gn3db
+from ...db import sqlite3 as authdb
 
 def __fetch_mrna_data_by_ids__(
         conn: gn3db.DbConnection, dataset_ids: tuple[str, ...]) -> tuple[
diff --git a/gn_auth/auth/authorisation/groups/models.py b/gn_auth/auth/authorisation/groups/models.py
index 0ffd3a7..6a39681 100644
--- a/gn_auth/auth/authorisation/groups/models.py
+++ b/gn_auth/auth/authorisation/groups/models.py
@@ -7,9 +7,9 @@ from typing import Any, Sequence, Iterable, Optional, NamedTuple
 from flask import g
 from pymonad.maybe import Just, Maybe, Nothing
 
-from gn_auth.auth.db import sqlite3 as db
-from gn_auth.auth.dictify import dictify
-from gn_auth.auth.authentication.users import User, user_by_id
+from ...db import sqlite3 as db
+from ...dictify import dictify
+from ...authentication.users import User, user_by_id
 
 from ..checks import authorised_p
 from ..privileges import Privilege
diff --git a/gn_auth/auth/authorisation/groups/views.py b/gn_auth/auth/authorisation/groups/views.py
index a63e09d..4dc17e0 100644
--- a/gn_auth/auth/authorisation/groups/views.py
+++ b/gn_auth/auth/authorisation/groups/views.py
@@ -7,11 +7,11 @@ from functools import partial
 from MySQLdb.cursors import DictCursor
 from flask import request, jsonify, Response, Blueprint, current_app
 
-from gn_auth.auth.db import sqlite3 as db
-from gn_auth.auth.db import mariadb as gn3db
+from ...db import sqlite3 as db
+from ...db import mariadb as gn3db
 
-from gn_auth.auth.dictify import dictify
-from gn_auth.auth.db.sqlite3 import with_db_connection
+from ...dictify import dictify
+from ...db.sqlite3 import with_db_connection
 
 from .data import link_data_to_group
 from .models import (
diff --git a/gn_auth/auth/authorisation/privileges.py b/gn_auth/auth/authorisation/privileges.py
index a348b92..bba6258 100644
--- a/gn_auth/auth/authorisation/privileges.py
+++ b/gn_auth/auth/authorisation/privileges.py
@@ -1,8 +1,8 @@
 """Handle privileges"""
 from typing import Any, Iterable, NamedTuple
 
-from gn_auth.auth.db import sqlite3 as db
-from gn_auth.auth.authentication.users import User
+from ..db import sqlite3 as db
+from ..authentication.users import User
 
 class Privilege(NamedTuple):
     """Class representing a privilege: creates immutable objects."""
diff --git a/gn_auth/auth/authorisation/resources/checks.py b/gn_auth/auth/authorisation/resources/checks.py
index 0c57b17..db975de 100644
--- a/gn_auth/auth/authorisation/resources/checks.py
+++ b/gn_auth/auth/authorisation/resources/checks.py
@@ -3,8 +3,8 @@ from uuid import UUID
 from functools import reduce
 from typing import Sequence
 
-from gn_auth.auth.db import sqlite3 as db
-from gn_auth.auth.authentication.users import User
+from ...db import sqlite3 as db
+from ...authentication.users import User
 
 def __organise_privileges_by_resource_id__(rows):
     def __organise__(privs, row):
diff --git a/gn_auth/auth/authorisation/resources/models.py b/gn_auth/auth/authorisation/resources/models.py
index 8c035c9..e4c3cab 100644
--- a/gn_auth/auth/authorisation/resources/models.py
+++ b/gn_auth/auth/authorisation/resources/models.py
@@ -5,10 +5,10 @@ from uuid import UUID, uuid4
 from functools import reduce, partial
 from typing import Any, Dict, Sequence, Optional, NamedTuple
 
-from gn_auth.auth.db import sqlite3 as db
-from gn_auth.auth.dictify import dictify
-from gn_auth.auth.authentication.users import User
-from gn_auth.auth.db.sqlite3 import with_db_connection
+from ...db import sqlite3 as db
+from ...dictify import dictify
+from ...authentication.users import User
+from ...db.sqlite3 import with_db_connection
 
 from .checks import authorised_for
 
diff --git a/gn_auth/auth/authorisation/resources/views.py b/gn_auth/auth/authorisation/resources/views.py
index e7af9b9..bf7e6f5 100644
--- a/gn_auth/auth/authorisation/resources/views.py
+++ b/gn_auth/auth/authorisation/resources/views.py
@@ -6,8 +6,8 @@ from functools import reduce
 
 from flask import request, jsonify, Response, Blueprint, current_app as app
 
-from gn_auth.auth.db import sqlite3 as db
-from gn_auth.auth.db.sqlite3 import with_db_connection
+from ...db import sqlite3 as db
+from ...db.sqlite3 import with_db_connection
 
 from .checks import authorised_for
 from .models import (
diff --git a/gn_auth/auth/authorisation/roles/models.py b/gn_auth/auth/authorisation/roles/models.py
index 0fecfc1..e1b0d6b 100644
--- a/gn_auth/auth/authorisation/roles/models.py
+++ b/gn_auth/auth/authorisation/roles/models.py
@@ -5,14 +5,13 @@ from typing import Any, Sequence, Iterable, NamedTuple
 
 from pymonad.either import Left, Right, Either
 
-from gn_auth.auth.db import sqlite3 as db
-from gn_auth.auth.dictify import dictify
-from gn_auth.auth.authentication.users import User
-from gn_auth.auth.authorisation.errors import AuthorisationError
+from ...db import sqlite3 as db
+from ...dictify import dictify
+from ...authentication.users import User
 
 from ..checks import authorised_p
 from ..privileges import Privilege
-from ..errors import NotFoundError
+from ..errors import NotFoundError, AuthorisationError
 
 class Role(NamedTuple):
     """Class representing a role: creates immutable objects."""
diff --git a/gn_auth/auth/authorisation/roles/views.py b/gn_auth/auth/authorisation/roles/views.py
index 4fc51f7..29d0991 100644
--- a/gn_auth/auth/authorisation/roles/views.py
+++ b/gn_auth/auth/authorisation/roles/views.py
@@ -3,8 +3,8 @@ import uuid
 
 from flask import jsonify, Response, Blueprint, current_app
 
-from gn_auth.auth.db import sqlite3 as db
-from gn_auth.auth.dictify import dictify
+from ...dictify import dictify
+from ...db import sqlite3 as db
 
 from .models import user_role
 
diff --git a/gn_auth/auth/authorisation/users/__init__.py b/gn_auth/auth/authorisation/users/__init__.py
index e69de29..dbc6482 100644
--- a/gn_auth/auth/authorisation/users/__init__.py
+++ b/gn_auth/auth/authorisation/users/__init__.py
@@ -0,0 +1 @@
+"""Users module."""
diff --git a/gn_auth/auth/authorisation/users/admin/ui.py b/gn_auth/auth/authorisation/users/admin/ui.py
index 9087412..68e1ba5 100644
--- a/gn_auth/auth/authorisation/users/admin/ui.py
+++ b/gn_auth/auth/authorisation/users/admin/ui.py
@@ -2,12 +2,13 @@
 from functools import wraps
 from flask import flash, url_for, redirect
 
-from gn_auth.auth.authentication.users import User
-from gn_auth.auth.db.sqlite3 import with_db_connection
-from gn_auth.auth.authorisation.roles.models import user_roles
-
 from gn_auth.session import logged_in, session_user, clear_session_info
 
+from ....authentication.users import User
+from ....db.sqlite3 import with_db_connection
+
+from ...roles.models import user_roles
+
 def is_admin(func):
     """Verify user is a system admin."""
     @wraps(func)
diff --git a/gn_auth/auth/authorisation/users/admin/views.py b/gn_auth/auth/authorisation/users/admin/views.py
index 4a37bc5..6ace0e5 100644
--- a/gn_auth/auth/authorisation/users/admin/views.py
+++ b/gn_auth/auth/authorisation/users/admin/views.py
@@ -18,16 +18,16 @@ from flask import (
 
 
 from gn_auth import session
-from gn_auth.auth.db import sqlite3 as db
-from gn_auth.auth.db.sqlite3 import with_db_connection
+from ....db import sqlite3 as db
+from ....db.sqlite3 import with_db_connection
 
-from gn_auth.auth.authentication.oauth2.models.oauth2client import (
+from ....authentication.oauth2.models.oauth2client import (
     save_client,
     OAuth2Client,
     oauth2_clients,
     client as oauth2_client,
     delete_client as _delete_client)
-from gn_auth.auth.authentication.users import (
+from ....authentication.users import (
     User,
     user_by_id,
     valid_login,
diff --git a/gn_auth/auth/authorisation/users/collections/models.py b/gn_auth/auth/authorisation/users/collections/models.py
index eb9b188..9157100 100644
--- a/gn_auth/auth/authorisation/users/collections/models.py
+++ b/gn_auth/auth/authorisation/users/collections/models.py
@@ -6,7 +6,7 @@ from datetime import datetime
 from redis import Redis
 from email_validator import validate_email, EmailNotValidError
 
-from gn_auth.auth.authorisation.errors import InvalidData, NotFoundError
+from ...errors import InvalidData, NotFoundError
 
 from ..models import User
 
diff --git a/gn_auth/auth/authorisation/users/collections/views.py b/gn_auth/auth/authorisation/users/collections/views.py
index 9900205..a1cc30d 100644
--- a/gn_auth/auth/authorisation/users/collections/views.py
+++ b/gn_auth/auth/authorisation/users/collections/views.py
@@ -4,13 +4,14 @@ from uuid import UUID
 from redis import Redis
 from flask import jsonify, request, Response, Blueprint, current_app
 
-from gn_auth.auth.db import sqlite3 as db
-from gn_auth.auth.db.sqlite3 import with_db_connection
-from gn_auth.auth.authorisation.checks import require_json
-from gn_auth.auth.authorisation.errors import NotFoundError
+from ....db import sqlite3 as db
+from ....db.sqlite3 import with_db_connection
 
-from gn_auth.auth.authentication.users import User, user_by_id
-from gn_auth.auth.authentication.oauth2.resource_server import require_oauth
+from ....authentication.users import User, user_by_id
+from ....authentication.oauth2.resource_server import require_oauth
+
+from ...checks import require_json
+from ...errors import NotFoundError
 
 from .models import (
     add_traits,
diff --git a/gn_auth/auth/authorisation/users/masquerade/models.py b/gn_auth/auth/authorisation/users/masquerade/models.py
index 9779764..86b9e53 100644
--- a/gn_auth/auth/authorisation/users/masquerade/models.py
+++ b/gn_auth/auth/authorisation/users/masquerade/models.py
@@ -5,13 +5,13 @@ from datetime import datetime
 
 from flask import current_app as app
 
-from gn_auth.auth.db import sqlite3 as db
 
-from gn_auth.auth.authorisation.errors import ForbiddenAccess
-from gn_auth.auth.authorisation.roles.models import user_roles
+from ...errors import ForbiddenAccess
+from ...roles.models import user_roles
 
-from gn_auth.auth.authentication.users import User
-from gn_auth.auth.authentication.oauth2.models.oauth2token import (
+from ....db import sqlite3 as db
+from ....authentication.users import User
+from ....authentication.oauth2.models.oauth2token import (
     OAuth2Token, save_token)
 
 __FIVE_HOURS__ = (60 * 60 * 5)
diff --git a/gn_auth/auth/authorisation/users/masquerade/views.py b/gn_auth/auth/authorisation/users/masquerade/views.py
index 7bd8ddb..259cdfe 100644
--- a/gn_auth/auth/authorisation/users/masquerade/views.py
+++ b/gn_auth/auth/authorisation/users/masquerade/views.py
@@ -4,12 +4,12 @@ from functools import partial
 
 from flask import request, jsonify, Response, Blueprint
 
-from gn_auth.auth.db.sqlite3 import with_db_connection
-from gn_auth.auth.authorisation.errors import InvalidData
-from gn_auth.auth.authorisation.checks import require_json
+from ...errors import InvalidData
+from ...checks import require_json
 
-from gn_auth.auth.authentication.users import user_by_id
-from gn_auth.auth.authentication.oauth2.resource_server import require_oauth
+from ....db.sqlite3 import with_db_connection
+from ....authentication.users import user_by_id
+from ....authentication.oauth2.resource_server import require_oauth
 
 from .models import masquerade_as
 
diff --git a/gn_auth/auth/authorisation/users/models.py b/gn_auth/auth/authorisation/users/models.py
index 61489cf..9fb9d9e 100644
--- a/gn_auth/auth/authorisation/users/models.py
+++ b/gn_auth/auth/authorisation/users/models.py
@@ -2,12 +2,12 @@
 import uuid
 from functools import reduce
 
-from gn_auth.auth.db import sqlite3 as db
-from gn_auth.auth.authorisation.roles.models import Role
-from gn_auth.auth.authorisation.checks import authorised_p
-from gn_auth.auth.authorisation.privileges import Privilege
+from ..roles.models import Role
+from ..checks import authorised_p
+from ..privileges import Privilege
 
-from gn_auth.auth.authentication.users import User
+from ...db import sqlite3 as db
+from ...authentication.users import User
 
 @authorised_p(
     ("system:user:list",),
diff --git a/gn_auth/auth/authorisation/users/views.py b/gn_auth/auth/authorisation/users/views.py
index 0646e3a..6de30da 100644
--- a/gn_auth/auth/authorisation/users/views.py
+++ b/gn_auth/auth/authorisation/users/views.py
@@ -7,9 +7,9 @@ import sqlite3
 from email_validator import validate_email, EmailNotValidError
 from flask import request, jsonify, Response, Blueprint, current_app
 
-from gn_auth.auth.db import sqlite3 as db
-from gn_auth.auth.dictify import dictify
-from gn_auth.auth.db.sqlite3 import with_db_connection
+from ...db import sqlite3 as db
+from ...dictify import dictify
+from ...db.sqlite3 import with_db_connection
 
 from .models import list_users
 from .masquerade.views import masq