aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrederick Muriuki Muriithi2023-07-24 11:08:07 +0300
committerFrederick Muriuki Muriithi2023-07-24 11:08:07 +0300
commit5930087ff8ed1dc857d145e155d327528866a11e (patch)
treea6e8a47676d75c2cba5a28a14ccd2a51b0fd3463
parent8f9a857a911209f882dec4b50b8ee148a6267f64 (diff)
downloadgenenetwork2-5930087ff8ed1dc857d145e155d327528866a11e.tar.gz
Protect the "approve" and "reject" endpoints
Protect the actual "approve" or "reject" steps, rather than just the UI elements.
-rw-r--r--wqflask/wqflask/metadata_edits.py6
-rw-r--r--wqflask/wqflask/templates/display_files.html4
2 files changed, 8 insertions, 2 deletions
diff --git a/wqflask/wqflask/metadata_edits.py b/wqflask/wqflask/metadata_edits.py
index c8d104ea..e3e8cf15 100644
--- a/wqflask/wqflask/metadata_edits.py
+++ b/wqflask/wqflask/metadata_edits.py
@@ -655,6 +655,9 @@ def __authorised_p__(dataset_name, trait_name):
).either(__error__, __success__)
@metadata_edit.route("<resource_id>/diffs/<file_name>/reject")
+@required_access(
+ ("group:resource:view-resource", "group:resource:edit-resource"),
+ trait_key="trait_name")
@login_required(pagename="sample data rejection")
def reject_data(resource_id: str, file_name: str):
diffs_page = redirect(url_for("metadata_edit.list_diffs"))
@@ -679,6 +682,9 @@ def reject_data(resource_id: str, file_name: str):
return diffs_page
@metadata_edit.route("<resource_id>/diffs/<file_name>/approve")
+@required_access(
+ ("group:resource:view-resource", "group:resource:edit-resource"),
+ trait_key="trait_name")
@login_required(pagename="Sample Data Approval")
def approve_data(resource_id: str, file_name: str):
from utility.tools import get_setting
diff --git a/wqflask/wqflask/templates/display_files.html b/wqflask/wqflask/templates/display_files.html
index 80464bb1..d0e8cc33 100644
--- a/wqflask/wqflask/templates/display_files.html
+++ b/wqflask/wqflask/templates/display_files.html
@@ -43,8 +43,8 @@
<td><a href="{{ file_url }}" target="_blank">{{ data.meta.get("resource_id") }}</a></td>
<td>{{ data.meta.get("author")}}</td>
<td>{{ data.meta.get("time_stamp")}}</td>
- {% set reject_url = url_for('metadata_edit.reject_data', resource_id=data.meta.get('resource_id'), file_name=data.filepath.name) %}
- {% set approve_url = url_for('metadata_edit.approve_data', resource_id=data.meta.get('resource_id'), file_name=data.filepath.name) %}
+ {% set reject_url = url_for('metadata_edit.reject_data', resource_id=data.meta.get('resource_id'), file_name=data.filepath.name, dataset_name=data.diff.dataset_name, trait_name=data.diff.trait_name) %}
+ {% set approve_url = url_for('metadata_edit.approve_data', resource_id=data.meta.get('resource_id'), file_name=data.filepath.name, dataset_name=data.diff.dataset_name, trait_name=data.diff.trait_name) %}
<td>
<button type="button"
class="btn btn-secondary btn-sm">