Skip to content

Commit 3f4006f

Browse files
committed
feat(views): sysadmin only;
- Only allow sysadmins to refresh resources via the UI.
1 parent f1b9860 commit 3f4006f

File tree

2 files changed

+6
-3
lines changed

2 files changed

+6
-3
lines changed

ckanext/recombinant/logic.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -284,7 +284,7 @@ def _update_datastore(lc: LocalCKAN,
284284
new_fields = []
285285
schema_field_ids = set(
286286
f['id'] for f in datastore_fields(chromo['fields'],
287-
datastore_text_types))
287+
datastore_text_types))
288288
for f in fields:
289289
if f['id'] not in schema_field_ids:
290290
do_delete_fields = True

ckanext/recombinant/views.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -558,7 +558,10 @@ def preview_table(resource_name: str,
558558
except RecombinantException:
559559
return abort(404, _('Recombinant resource_name not found'))
560560

561-
if 'create' in request.form or 'refresh' in request.form:
561+
if (
562+
'create' in request.form or
563+
'refresh-hard' in request.form or
564+
'refresh' in request.form):
562565
# check if the user can update datasets for organization
563566
# admin and editors should be able to init recombinant records
564567
if not has_user_permission_for_group_or_org(org_object.id,
@@ -583,7 +586,7 @@ def preview_table(resource_name: str,
583586
elif 'refresh-hard' in request.form or 'refresh' in request.form:
584587
if not is_sysadmin(g.user):
585588
# only sysadmins can refresh via UI
586-
return abort(404)
589+
return abort(403)
587590
delete_fields = False
588591
if 'refresh-hard' in request.form:
589592
delete_fields = True

0 commit comments

Comments
 (0)