aboutsummaryrefslogtreecommitdiff
path: root/gn_auth/auth/authorisation/resources
diff options
context:
space:
mode:
Diffstat (limited to 'gn_auth/auth/authorisation/resources')
-rw-r--r--gn_auth/auth/authorisation/resources/models.py19
1 files changed, 19 insertions, 0 deletions
diff --git a/gn_auth/auth/authorisation/resources/models.py b/gn_auth/auth/authorisation/resources/models.py
index d6e3a1d..3693ad1 100644
--- a/gn_auth/auth/authorisation/resources/models.py
+++ b/gn_auth/auth/authorisation/resources/models.py
@@ -1,6 +1,7 @@
"""Handle the management of resources."""
from uuid import UUID, uuid4
from functools import reduce, partial
+from sqlite3 import Row
from typing import Dict, Sequence, Optional
from gn_auth.auth.db import sqlite3 as db
@@ -35,6 +36,22 @@ from .phenotype import (
from .errors import MissingGroupError
+
+def __metadata_resource_data__(
+ cursor: db.DbCursor,
+ resource_id: UUID,
+ offset: int = 0,
+ limit: Optional[int] = None
+) -> Sequence[Row]:
+ """Fetch metadata resources"""
+ cursor.execute(
+ (
+ ("SELECT * FROM metadata_resources as mt \
+WHERE mt.resource_id=?")
+ + (f" LIMIT {limit} OFFSET {offset}" if bool(limit) else "")),
+ (str(resource_id),))
+ return cursor.fetchall()
+
def __assign_resource_owner_role__(cursor, resource, user, group):
"""Assign `user` the 'Resource Owner' role for `resource`."""
cursor.execute(
@@ -185,6 +202,7 @@ def resource_data(conn, resource, offset: int = 0, limit: Optional[int] = None)
"mrna": mrna_resource_data,
"genotype": genotype_resource_data,
"phenotype": phenotype_resource_data,
+ "metadata": __metadata_resource_data__,
"system": lambda *args: tuple(),
"group": lambda *args: tuple()
}
@@ -291,6 +309,7 @@ def attach_resources_data(
"mrna": mrna_attach_resources_data,
"genotype": genotype_attach_resources_data,
"phenotype": phenotype_attach_resources_data,
+ "metadata": lambda *args: [],
"system": lambda *args: [],
"group": lambda *args: [],
"inbredset-group": lambda *args: []