From d0ebb6970b6f436f64efb839a66acc35127179ae Mon Sep 17 00:00:00 2001 From: Jesse Vickery Date: Mon, 8 Jun 2026 10:53:45 -0400 Subject: [PATCH 1/3] feat(schema): creator user id; - Added schema for creator_user_id. --- ckan/logic/action/create.py | 4 +++- ckan/logic/schema.py | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/ckan/logic/action/create.py b/ckan/logic/action/create.py index d04011634ae..471fac1e1e4 100644 --- a/ckan/logic/action/create.py +++ b/ckan/logic/action/create.py @@ -207,7 +207,9 @@ def package_create( if user: user_obj = model.User.by_name(six.ensure_text(user)) if user_obj: - data['creator_user_id'] = user_obj.id + # (canada fork only): schema for creator_user_id + if not data.get('creator_user_id'): + data['creator_user_id'] = user_obj.id include_plugin_data = user_obj.sysadmin and plugin_data pkg, _change = model_save.package_dict_save( diff --git a/ckan/logic/schema.py b/ckan/logic/schema.py index a903d957f77..a65f07da090 100644 --- a/ckan/logic/schema.py +++ b/ckan/logic/schema.py @@ -137,6 +137,8 @@ def default_create_package_schema( package_id_does_not_exist], 'name': [ not_empty, unicode_safe, name_validator, package_name_validator], + # (canada fork only): schema for creator_user_id + 'creator_user_id': [ignore_missing, unicode_safe, ignore_not_sysadmin], 'title': [if_empty_same_as("name"), unicode_safe], 'author': [ignore_missing, unicode_safe], 'author_email': [ignore_missing, unicode_safe, strip_value, From e60d23ef349ad27fb888da90fe5e0f89e461e7c2 Mon Sep 17 00:00:00 2001 From: Jesse Vickery Date: Mon, 8 Jun 2026 11:07:07 -0400 Subject: [PATCH 2/3] feat(misc): changelog; - Added change log file. --- changes/230.canada.feature | 1 + 1 file changed, 1 insertion(+) create mode 100644 changes/230.canada.feature diff --git a/changes/230.canada.feature b/changes/230.canada.feature new file mode 100644 index 00000000000..72c944c96d7 --- /dev/null +++ b/changes/230.canada.feature @@ -0,0 +1 @@ +Added `creatore_user_id` as a syadmin only field in the Dataset schema, allowing for sysadmins to set this field. From f43101f640f5ce88b26a0c53c01da608a0175ed9 Mon Sep 17 00:00:00 2001 From: Jesse Vickery Date: Mon, 15 Jun 2026 13:53:18 -0400 Subject: [PATCH 3/3] feat(misc): comments; - Mark upstream contrib. --- ckan/logic/action/create.py | 1 + ckan/logic/schema.py | 1 + 2 files changed, 2 insertions(+) diff --git a/ckan/logic/action/create.py b/ckan/logic/action/create.py index 471fac1e1e4..d4142395b47 100644 --- a/ckan/logic/action/create.py +++ b/ckan/logic/action/create.py @@ -208,6 +208,7 @@ def package_create( user_obj = model.User.by_name(six.ensure_text(user)) if user_obj: # (canada fork only): schema for creator_user_id + # TODO: upstream contrib!! if not data.get('creator_user_id'): data['creator_user_id'] = user_obj.id include_plugin_data = user_obj.sysadmin and plugin_data diff --git a/ckan/logic/schema.py b/ckan/logic/schema.py index a65f07da090..7db45d283d7 100644 --- a/ckan/logic/schema.py +++ b/ckan/logic/schema.py @@ -138,6 +138,7 @@ def default_create_package_schema( 'name': [ not_empty, unicode_safe, name_validator, package_name_validator], # (canada fork only): schema for creator_user_id + # TODO: upstream contrib!! 'creator_user_id': [ignore_missing, unicode_safe, ignore_not_sysadmin], 'title': [if_empty_same_as("name"), unicode_safe], 'author': [ignore_missing, unicode_safe],