From b5d32afe62c4ef64b748bacb973c2cb79d559361 Mon Sep 17 00:00:00 2001 From: John Nduli Date: Tue, 6 Aug 2024 08:10:04 +0300 Subject: fix: pass in proper list of priviledge_ids --- gn2/wqflask/oauth2/ui.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'gn2/wqflask/oauth2') diff --git a/gn2/wqflask/oauth2/ui.py b/gn2/wqflask/oauth2/ui.py index 90d65e0b..d70a13ec 100644 --- a/gn2/wqflask/oauth2/ui.py +++ b/gn2/wqflask/oauth2/ui.py @@ -8,8 +8,11 @@ from .request_utils import process_error def render_ui(templatepath: str, **kwargs): """Handle repetitive UI rendering stuff.""" roles = kwargs.get("roles", tuple()) # Get roles + if not roles: + roles = oauth2_get("auth/system/roles").either( + lambda _err: roles, lambda auth_roles: auth_roles) user_privileges = tuple( - privilege for role in roles for privilege in role["privileges"]) + privilege["privilege_id"] for role in roles for privilege in role["privileges"]) kwargs = { **kwargs, "roles": roles, "user_privileges": user_privileges } -- cgit v1.2.3 From 0dcd203faef748a625a7134b9dcda61baac51b3b Mon Sep 17 00:00:00 2001 From: John Nduli Date: Tue, 6 Aug 2024 08:36:28 +0300 Subject: fix: use bearer token to query auth server --- gn2/wqflask/oauth2/ui.py | 5 ++++- gn2/wqflask/static/new/javascript/auth/search_mrna.js | 5 +++++ gn2/wqflask/templates/oauth2/data-list-mrna.html | 2 ++ 3 files changed, 11 insertions(+), 1 deletion(-) (limited to 'gn2/wqflask/oauth2') diff --git a/gn2/wqflask/oauth2/ui.py b/gn2/wqflask/oauth2/ui.py index d70a13ec..89739fe3 100644 --- a/gn2/wqflask/oauth2/ui.py +++ b/gn2/wqflask/oauth2/ui.py @@ -1,6 +1,8 @@ """UI utilities""" from flask import session, render_template +from gn2.wqflask.oauth2 import session + from .client import oauth2_get from .client import user_logged_in from .request_utils import process_error @@ -13,7 +15,8 @@ def render_ui(templatepath: str, **kwargs): lambda _err: roles, lambda auth_roles: auth_roles) user_privileges = tuple( privilege["privilege_id"] for role in roles for privilege in role["privileges"]) + user_token = session.user_token().either(lambda _err: "", lambda token: token["access_token"]) kwargs = { - **kwargs, "roles": roles, "user_privileges": user_privileges + **kwargs, "roles": roles, "user_privileges": user_privileges, "bearer_token": user_token } return render_template(templatepath, **kwargs) diff --git a/gn2/wqflask/static/new/javascript/auth/search_mrna.js b/gn2/wqflask/static/new/javascript/auth/search_mrna.js index 76b2dc6b..ed264bb4 100644 --- a/gn2/wqflask/static/new/javascript/auth/search_mrna.js +++ b/gn2/wqflask/static/new/javascript/auth/search_mrna.js @@ -15,12 +15,17 @@ function search_mrna() { selected = JSON.parse(document.getElementById( "tbl-link").getAttribute("data-datasets")); species_name = document.getElementById("txt-species-name").value + bearer_token = document.getElementById("bearer_token").value search_endpoint = "/auth/data/mrna/search" search_table = new TableDataSource( "#tbl-search", "data-datasets", search_checkbox); $.ajax( form.action, { + + "beforeSend": function (xhr) { + xhr.setRequestHeader('Authorization', 'Bearer ' + bearer_token); + }, "method": "POST", "contentType": "application/json; charset=utf-8", "dataType": "json", diff --git a/gn2/wqflask/templates/oauth2/data-list-mrna.html b/gn2/wqflask/templates/oauth2/data-list-mrna.html index 728e95d4..0ee9d27e 100644 --- a/gn2/wqflask/templates/oauth2/data-list-mrna.html +++ b/gn2/wqflask/templates/oauth2/data-list-mrna.html @@ -95,6 +95,8 @@ action="{{search_uri}}" method="POST"> Search: mRNA Assay + +