From ba0888f64271446814ae26ba5f1880b385ccb431 Mon Sep 17 00:00:00 2001 From: WANGF Date: Mon, 23 Oct 2023 09:19:33 -0400 Subject: [PATCH 01/24] metadata history viewing with user profile level --- .../src/main/resources/catalog/js/CatController.js | 9 +++++++++ .../main/resources/catalog/locales/en-admin.json | 3 +++ .../catalog/templates/admin/settings/system.html | 14 ++++++++++++++ .../views/default/templates/recordView/footer.html | 2 +- .../classes/setup/sql/data/data-db-default.sql | 2 ++ .../setup/sql/migrate/v440/migrate-default.sql | 1 + 6 files changed, 30 insertions(+), 1 deletion(-) diff --git a/web-ui/src/main/resources/catalog/js/CatController.js b/web-ui/src/main/resources/catalog/js/CatController.js index 418509c2eb0..473d2a0a2ee 100644 --- a/web-ui/src/main/resources/catalog/js/CatController.js +++ b/web-ui/src/main/resources/catalog/js/CatController.js @@ -1841,6 +1841,15 @@ : ""; return angular.isFunction(this[fnName]) ? this[fnName]() : false; }, + canViewMetadataHistory: function () { + var profile = gnConfig["metadata.history.accesslevel"] || 'Editor', + fnName = + profile !== '' + ? 'is' + profile[0].toUpperCase() + profile.substring(1) + 'OrMore' + : ''; + console.log("User profile to view history: "+profile); + return angular.isFunction(this[fnName]) ? this[fnName]() : false; + }, canDeletePublishedMetadata: function () { var profile = gnConfig["metadata.delete.profilePublishedMetadata"] || "Editor", diff --git a/web-ui/src/main/resources/catalog/locales/en-admin.json b/web-ui/src/main/resources/catalog/locales/en-admin.json index 1ae5dc67565..0aba2b8e288 100644 --- a/web-ui/src/main/resources/catalog/locales/en-admin.json +++ b/web-ui/src/main/resources/catalog/locales/en-admin.json @@ -874,6 +874,9 @@ "metadata/publication/profilePublishMetadata-help": "Minimum user profile allowed to publish metadata (Reviewer or Administrator). The default value is Reviewer.", "metadata/publication/profileUnpublishMetadata": "Minimum user profile allowed to un-publish metadata", "metadata/publication/profileUnpublishMetadata-help": "Minimum user profile allowed to un-publish metadata (Reviewer or Administrator). The default value is Reviewer.", + "metadata/history": "Metadata History", + "metadata/history/accesslevel": "Select the minimum user profile allowed to view metadata history", + "metadata/history/accesslevel-help": "Select the minimum user profile allowed to view metadata history (Editor, Reviewer or Administrator). The default value is Editor.", "filterStatusByAuthor":"Status author", "filterStatusByOwner":"Status owner", "filterStatusByRecordId":"Record identifier", diff --git a/web-ui/src/main/resources/catalog/templates/admin/settings/system.html b/web-ui/src/main/resources/catalog/templates/admin/settings/system.html index a57c94b85f0..d94ef0fdc63 100644 --- a/web-ui/src/main/resources/catalog/templates/admin/settings/system.html +++ b/web-ui/src/main/resources/catalog/templates/admin/settings/system.html @@ -254,6 +254,20 @@

{{section2.name | translate}}

+ +
diff --git a/web/src/main/webapp/WEB-INF/classes/setup/sql/data/data-db-default.sql b/web/src/main/webapp/WEB-INF/classes/setup/sql/data/data-db-default.sql index ca7310ebd93..b21d6b9ea6a 100644 --- a/web/src/main/webapp/WEB-INF/classes/setup/sql/data/data-db-default.sql +++ b/web/src/main/webapp/WEB-INF/classes/setup/sql/data/data-db-default.sql @@ -695,6 +695,8 @@ INSERT INTO Settings (name, value, datatype, position, internal) VALUES ('metada INSERT INTO Settings (name, value, datatype, position, internal) VALUES ('metadata/batchediting/accesslevel', 'Editor', 0, 12020, 'n'); +INSERT INTO Settings (name, value, datatype, position, internal) VALUES ('metadata/history/accesslevel', 'Editor', 0, 12021, 'n'); + INSERT INTO Settings (name, value, datatype, position, internal) VALUES ('metadata/delete/profilePublishedMetadata', 'Editor', 0, 12011, 'n'); INSERT INTO Settings (name, value, datatype, position, internal) VALUES ('metadata/publication/profilePublishMetadata', 'Reviewer', 0, 12021, 'n'); diff --git a/web/src/main/webapp/WEB-INF/classes/setup/sql/migrate/v440/migrate-default.sql b/web/src/main/webapp/WEB-INF/classes/setup/sql/migrate/v440/migrate-default.sql index f74b0a6de7b..612d36c1748 100644 --- a/web/src/main/webapp/WEB-INF/classes/setup/sql/migrate/v440/migrate-default.sql +++ b/web/src/main/webapp/WEB-INF/classes/setup/sql/migrate/v440/migrate-default.sql @@ -2,3 +2,4 @@ UPDATE Settings SET value='4.4.0' WHERE name='system/platform/version'; UPDATE Settings SET value='0' WHERE name='system/platform/subVersion'; INSERT INTO Settings (name, value, datatype, position, internal) SELECT distinct 'metadata/batchediting/accesslevel', 'Editor', 0, 12020, 'n' from settings WHERE NOT EXISTS (SELECT name FROM Settings WHERE name = 'metadata/batchediting/accesslevel'); +INSERT INTO Settings (name, value, datatype, position, internal) SELECT distinct 'metadata/history/accesslevel', 'Editor', 0, 12021, 'n' from settings WHERE NOT EXISTS (SELECT name FROM Settings WHERE name = 'metadata/history/accesslevel'); From b7f7b3ee21916d01240bf776d14651159d778e0f Mon Sep 17 00:00:00 2001 From: WANGF Date: Mon, 30 Oct 2023 13:52:49 -0400 Subject: [PATCH 02/24] Access level restriction to /status/search API --- .../fao/geonet/kernel/setting/Settings.java | 1 + .../api/records/MetadataWorkflowApi.java | 25 +++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/core/src/main/java/org/fao/geonet/kernel/setting/Settings.java b/core/src/main/java/org/fao/geonet/kernel/setting/Settings.java index 01a878903fb..cf73de3eca6 100644 --- a/core/src/main/java/org/fao/geonet/kernel/setting/Settings.java +++ b/core/src/main/java/org/fao/geonet/kernel/setting/Settings.java @@ -139,6 +139,7 @@ public class Settings { public static final String METADATA_IMPORT_RESTRICT = "metadata/import/restrict"; public static final String METADATA_IMPORT_USERPROFILE = "metadata/import/userprofile"; public static final String METADATA_BATCH_EDITING_ACCESS_LEVEL = "metadata/batchediting/accesslevel"; + public static final String METADATA_HISTORY_ACCESS_LEVEL = "metadata/history/accesslevel"; public static final String METADATA_PUBLISHED_DELETE_USERPROFILE = "metadata/delete/profilePublishedMetadata"; public static final String METADATA_PUBLISH_USERPROFILE = "metadata/publication/profilePublishMetadata"; public static final String METADATA_UNPUBLISH_USERPROFILE = "metadata/publication/profileUnpublishMetadata"; diff --git a/services/src/main/java/org/fao/geonet/api/records/MetadataWorkflowApi.java b/services/src/main/java/org/fao/geonet/api/records/MetadataWorkflowApi.java index 29360e54ebc..cc4b75a8448 100644 --- a/services/src/main/java/org/fao/geonet/api/records/MetadataWorkflowApi.java +++ b/services/src/main/java/org/fao/geonet/api/records/MetadataWorkflowApi.java @@ -60,6 +60,7 @@ import org.fao.geonet.kernel.setting.Settings; import org.fao.geonet.repository.*; import org.fao.geonet.util.MetadataPublicationMailNotifier; +import org.fao.geonet.util.UserUtil; import org.fao.geonet.utils.Log; import org.fao.geonet.utils.Xml; import org.jdom.Element; @@ -71,6 +72,7 @@ import org.springframework.data.domain.Sort; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; +import org.springframework.security.access.hierarchicalroles.RoleHierarchy; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; @@ -149,6 +151,9 @@ public class MetadataWorkflowApi { @Autowired MetadataPublicationMailNotifier metadataPublicationMailNotifier; + @Autowired + RoleHierarchy roleHierarchy; + // The restore function currently supports these states static final Integer[] supportedRestoreStatuses = { Integer.parseInt(StatusValue.Events.RECORDUPDATED), @@ -692,6 +697,7 @@ public List getWorkflowStatusByType( Integer size, HttpServletRequest request) throws Exception { ServiceContext context = ApiUtils.createServiceContext(request); + checkUserProfileToViewMetadataHistory(context.getUserSession()); Profile profile = context.getUserSession().getProfile(); if (profile != Profile.Administrator) { @@ -1310,4 +1316,23 @@ private void changeMetadataStatus(ServiceContext context, AbstractMetadata metad listOfStatusChange.add(metadataStatusValue); sa.onStatusChange(listOfStatusChange); } + + + /** + * Checks if the user profile is allowed to view metadata history status. + * + * @param userSession + */ + private void checkUserProfileToViewMetadataHistory(UserSession userSession) { + if (userSession.getProfile() != Profile.Administrator) { + String allowedUserProfileToImportMetadata = + org.apache.commons.lang.StringUtils.defaultIfBlank(settingManager.getValue(Settings.METADATA_HISTORY_ACCESS_LEVEL), Profile.Editor.toString()); + + // Is the user profile is higher than the profile allowed to import metadata? + if (!UserUtil.hasHierarchyRole(allowedUserProfileToImportMetadata, this.roleHierarchy)) { + throw new NotAllowedException("The user has no permissions to batch edit metadata."); + } + } + + } } From fd48d9fef40bc3f8a265c3808fad09d526bb29bd Mon Sep 17 00:00:00 2001 From: WANGF Date: Mon, 30 Oct 2023 14:22:14 -0400 Subject: [PATCH 03/24] error message update --- .../java/org/fao/geonet/api/records/MetadataWorkflowApi.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/services/src/main/java/org/fao/geonet/api/records/MetadataWorkflowApi.java b/services/src/main/java/org/fao/geonet/api/records/MetadataWorkflowApi.java index cc4b75a8448..e891e2be675 100644 --- a/services/src/main/java/org/fao/geonet/api/records/MetadataWorkflowApi.java +++ b/services/src/main/java/org/fao/geonet/api/records/MetadataWorkflowApi.java @@ -1328,9 +1328,9 @@ private void checkUserProfileToViewMetadataHistory(UserSession userSession) { String allowedUserProfileToImportMetadata = org.apache.commons.lang.StringUtils.defaultIfBlank(settingManager.getValue(Settings.METADATA_HISTORY_ACCESS_LEVEL), Profile.Editor.toString()); - // Is the user profile is higher than the profile allowed to import metadata? + // Is the user profile is higher than the profile allowed? if (!UserUtil.hasHierarchyRole(allowedUserProfileToImportMetadata, this.roleHierarchy)) { - throw new NotAllowedException("The user has no permissions to batch edit metadata."); + throw new NotAllowedException("The user has no permissions to view metadata history."); } } From 9b4b3f6501514f04eb6f329b4df67efac356c296 Mon Sep 17 00:00:00 2001 From: WANGF Date: Tue, 31 Oct 2023 09:15:13 -0400 Subject: [PATCH 04/24] comment description --- .../java/org/fao/geonet/api/records/MetadataWorkflowApi.java | 2 +- .../java/org/fao/geonet/api/records/editing/BatchEditsApi.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/services/src/main/java/org/fao/geonet/api/records/MetadataWorkflowApi.java b/services/src/main/java/org/fao/geonet/api/records/MetadataWorkflowApi.java index e891e2be675..11d1d81f0fc 100644 --- a/services/src/main/java/org/fao/geonet/api/records/MetadataWorkflowApi.java +++ b/services/src/main/java/org/fao/geonet/api/records/MetadataWorkflowApi.java @@ -1328,7 +1328,7 @@ private void checkUserProfileToViewMetadataHistory(UserSession userSession) { String allowedUserProfileToImportMetadata = org.apache.commons.lang.StringUtils.defaultIfBlank(settingManager.getValue(Settings.METADATA_HISTORY_ACCESS_LEVEL), Profile.Editor.toString()); - // Is the user profile is higher than the profile allowed? + // Is the user profile higher than the profile allowed? if (!UserUtil.hasHierarchyRole(allowedUserProfileToImportMetadata, this.roleHierarchy)) { throw new NotAllowedException("The user has no permissions to view metadata history."); } diff --git a/services/src/main/java/org/fao/geonet/api/records/editing/BatchEditsApi.java b/services/src/main/java/org/fao/geonet/api/records/editing/BatchEditsApi.java index 5feb506f190..9abeb6d24c3 100644 --- a/services/src/main/java/org/fao/geonet/api/records/editing/BatchEditsApi.java +++ b/services/src/main/java/org/fao/geonet/api/records/editing/BatchEditsApi.java @@ -317,7 +317,7 @@ private void checkUserProfileToBatchEditMetadata(UserSession userSession) { String allowedUserProfileToImportMetadata = StringUtils.defaultIfBlank(settingManager.getValue(Settings.METADATA_BATCH_EDITING_ACCESS_LEVEL), Profile.Editor.toString()); - // Is the user profile is higher than the profile allowed to import metadata? + // Is the user profile higher than the profile allowed to import metadata? if (!UserUtil.hasHierarchyRole(allowedUserProfileToImportMetadata, this.roleHierarchy)) { throw new NotAllowedException("The user has no permissions to batch edit metadata."); } From 7c2d18419ec384d6cf41d8fe0b3b7bc65ee26000 Mon Sep 17 00:00:00 2001 From: WANGF Date: Wed, 1 Nov 2023 10:18:52 -0400 Subject: [PATCH 05/24] allow registered user to view metadata history and part of the access level setting --- web-ui/src/main/resources/catalog/locales/en-admin.json | 2 +- .../resources/catalog/templates/admin/settings/system.html | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/web-ui/src/main/resources/catalog/locales/en-admin.json b/web-ui/src/main/resources/catalog/locales/en-admin.json index 0aba2b8e288..56b308b8ab4 100644 --- a/web-ui/src/main/resources/catalog/locales/en-admin.json +++ b/web-ui/src/main/resources/catalog/locales/en-admin.json @@ -876,7 +876,7 @@ "metadata/publication/profileUnpublishMetadata-help": "Minimum user profile allowed to un-publish metadata (Reviewer or Administrator). The default value is Reviewer.", "metadata/history": "Metadata History", "metadata/history/accesslevel": "Select the minimum user profile allowed to view metadata history", - "metadata/history/accesslevel-help": "Select the minimum user profile allowed to view metadata history (Editor, Reviewer or Administrator). The default value is Editor.", + "metadata/history/accesslevel-help": "Select the minimum user profile allowed to view metadata history (Registered User, Editor, Reviewer or Administrator). The default value is Editor.", "filterStatusByAuthor":"Status author", "filterStatusByOwner":"Status owner", "filterStatusByRecordId":"Record identifier", diff --git a/web-ui/src/main/resources/catalog/templates/admin/settings/system.html b/web-ui/src/main/resources/catalog/templates/admin/settings/system.html index d94ef0fdc63..48625858e60 100644 --- a/web-ui/src/main/resources/catalog/templates/admin/settings/system.html +++ b/web-ui/src/main/resources/catalog/templates/admin/settings/system.html @@ -257,6 +257,9 @@

{{section2.name | translate}}

- + - - From c294463be98578e97b39a44abafd77f803217cd6 Mon Sep 17 00:00:00 2001 From: WANGF Date: Tue, 7 Nov 2023 08:46:44 -0500 Subject: [PATCH 10/24] remove configuration profile level check --- .../api/records/MetadataWorkflowApi.java | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/services/src/main/java/org/fao/geonet/api/records/MetadataWorkflowApi.java b/services/src/main/java/org/fao/geonet/api/records/MetadataWorkflowApi.java index 229026896f7..66efe495809 100644 --- a/services/src/main/java/org/fao/geonet/api/records/MetadataWorkflowApi.java +++ b/services/src/main/java/org/fao/geonet/api/records/MetadataWorkflowApi.java @@ -697,7 +697,6 @@ public List getWorkflowStatusByType( Integer size, HttpServletRequest request) throws Exception { ServiceContext context = ApiUtils.createServiceContext(request); - checkUserProfileToViewMetadataHistory(context.getUserSession()); Profile profile = context.getUserSession().getProfile(); String allowedProfileLevel = org.apache.commons.lang.StringUtils.defaultIfBlank(settingManager.getValue(Settings.METADATA_HISTORY_ACCESS_LEVEL), Profile.Editor.toString()); @@ -1330,22 +1329,4 @@ private void changeMetadataStatus(ServiceContext context, AbstractMetadata metad sa.onStatusChange(listOfStatusChange); } - - /** - * Checks if the user profile is allowed to view metadata history status. - * - * @param userSession - */ - private void checkUserProfileToViewMetadataHistory(UserSession userSession) { - if (userSession.getProfile() != Profile.Administrator) { - String allowedUserProfileToImportMetadata = - org.apache.commons.lang.StringUtils.defaultIfBlank(settingManager.getValue(Settings.METADATA_HISTORY_ACCESS_LEVEL), Profile.Editor.toString()); - - // Is the user profile higher than the profile allowed? - if (!UserUtil.hasHierarchyRole(allowedUserProfileToImportMetadata, this.roleHierarchy)) { - throw new NotAllowedException("The user has no permissions to view metadata history."); - } - } - - } } From 0dcfcab998a0224e698da7773aa99fe32d555409 Mon Sep 17 00:00:00 2001 From: WANGF Date: Wed, 15 Nov 2023 14:42:42 -0500 Subject: [PATCH 11/24] Removed junk code --- .../api/records/editing/BatchEditsApi.java | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/services/src/main/java/org/fao/geonet/api/records/editing/BatchEditsApi.java b/services/src/main/java/org/fao/geonet/api/records/editing/BatchEditsApi.java index 09b914693ad..09d038c0fbd 100644 --- a/services/src/main/java/org/fao/geonet/api/records/editing/BatchEditsApi.java +++ b/services/src/main/java/org/fao/geonet/api/records/editing/BatchEditsApi.java @@ -307,21 +307,4 @@ private Pair applyBatchEdits( return Pair.write(report, preview); } - /** - * Checks if the user profile is allowed to batch edit metadata. - * - * @param userSession - */ - private void checkUserProfileToBatchEditMetadata(UserSession userSession) { - if (userSession.getProfile() != Profile.Administrator) { - String allowedUserProfileToImportMetadata = - StringUtils.defaultIfBlank(settingManager.getValue(Settings.METADATA_BATCH_EDITING_ACCESS_LEVEL), Profile.Editor.toString()); - - // Is the user profile higher than the profile allowed to import metadata? - if (!UserUtil.hasHierarchyRole(allowedUserProfileToImportMetadata, this.roleHierarchy)) { - throw new NotAllowedException("The user has no permissions to batch edit metadata."); - } - } - - } } From deaf064c56842a9ab99101b1eaafe2c61d8e720b Mon Sep 17 00:00:00 2001 From: WANGF Date: Thu, 16 Nov 2023 09:52:33 -0500 Subject: [PATCH 12/24] refactor system/metadata/history/enabled to metadata/history/enabled configuration --- .../main/java/org/fao/geonet/kernel/setting/Settings.java | 2 +- .../listener/history/GenericMetadataEventListener.java | 2 +- web-ui/src/main/resources/catalog/js/CatController.js | 2 +- web-ui/src/main/resources/catalog/locales/ca-admin.json | 6 +++--- web-ui/src/main/resources/catalog/locales/cs-admin.json | 6 +++--- web-ui/src/main/resources/catalog/locales/da-admin.json | 6 +++--- web-ui/src/main/resources/catalog/locales/de-admin.json | 6 +++--- web-ui/src/main/resources/catalog/locales/en-admin.json | 4 ++-- web-ui/src/main/resources/catalog/locales/es-admin.json | 6 +++--- web-ui/src/main/resources/catalog/locales/fi-admin.json | 6 +++--- web-ui/src/main/resources/catalog/locales/fr-admin.json | 6 +++--- web-ui/src/main/resources/catalog/locales/is-admin.json | 6 +++--- web-ui/src/main/resources/catalog/locales/it-admin.json | 6 +++--- web-ui/src/main/resources/catalog/locales/ko-admin.json | 6 +++--- web-ui/src/main/resources/catalog/locales/nl-admin.json | 6 +++--- web-ui/src/main/resources/catalog/locales/pt-admin.json | 6 +++--- web-ui/src/main/resources/catalog/locales/ru-admin.json | 6 +++--- web-ui/src/main/resources/catalog/locales/sk-admin.json | 6 +++--- web-ui/src/main/resources/catalog/locales/sv-admin.json | 6 +++--- web-ui/src/main/resources/catalog/locales/zh-admin.json | 6 +++--- .../WEB-INF/classes/setup/sql/data/data-db-default.sql | 2 +- .../classes/setup/sql/migrate/v350/migrate-default.sql | 2 +- .../classes/setup/sql/migrate/v440/migrate-default.sql | 1 - .../classes/setup/sql/migrate/v441/migrate-default.sql | 4 ++++ 24 files changed, 59 insertions(+), 56 deletions(-) diff --git a/core/src/main/java/org/fao/geonet/kernel/setting/Settings.java b/core/src/main/java/org/fao/geonet/kernel/setting/Settings.java index cf73de3eca6..af805c0e256 100644 --- a/core/src/main/java/org/fao/geonet/kernel/setting/Settings.java +++ b/core/src/main/java/org/fao/geonet/kernel/setting/Settings.java @@ -71,7 +71,6 @@ public class Settings { public static final String SYSTEM_ENABLE_ALL_THESAURUS = "system/metadata/allThesaurus"; public static final String SYSTEM_METADATA_THESAURUS_NAMESPACE = "system/metadata/thesaurusNamespace"; public static final String SYSTEM_METADATA_VALIDATION_REMOVESCHEMALOCATION = "system/metadata/validation/removeSchemaLocation"; - public static final String SYSTEM_METADATA_HISTORY_ENABLED = "system/metadata/history/enabled"; public static final GNSetting SYSTEM_SITE_SVNUUID = new GNSetting("system/site/svnUuid", true); public static final String SYSTEM_INTRANET_NETWORK = "system/intranet/network"; public static final String SYSTEM_INTRANET_NETMASK = "system/intranet/netmask"; @@ -139,6 +138,7 @@ public class Settings { public static final String METADATA_IMPORT_RESTRICT = "metadata/import/restrict"; public static final String METADATA_IMPORT_USERPROFILE = "metadata/import/userprofile"; public static final String METADATA_BATCH_EDITING_ACCESS_LEVEL = "metadata/batchediting/accesslevel"; + public static final String METADATA_HISTORY_ENABLED = "metadata/history/enabled"; public static final String METADATA_HISTORY_ACCESS_LEVEL = "metadata/history/accesslevel"; public static final String METADATA_PUBLISHED_DELETE_USERPROFILE = "metadata/delete/profilePublishedMetadata"; public static final String METADATA_PUBLISH_USERPROFILE = "metadata/publication/profilePublishMetadata"; diff --git a/listeners/src/main/java/org/fao/geonet/listener/history/GenericMetadataEventListener.java b/listeners/src/main/java/org/fao/geonet/listener/history/GenericMetadataEventListener.java index 06299c4be91..b9e052d5e99 100644 --- a/listeners/src/main/java/org/fao/geonet/listener/history/GenericMetadataEventListener.java +++ b/listeners/src/main/java/org/fao/geonet/listener/history/GenericMetadataEventListener.java @@ -70,7 +70,7 @@ public final void handleEvent(AbstractHistoryEvent event) { */ public final void storeContentHistoryEvent(AbstractHistoryEvent event) { - if(settingManager.getValueAsBool(Settings.SYSTEM_METADATA_HISTORY_ENABLED)) { + if(settingManager.getValueAsBool(Settings.METADATA_HISTORY_ENABLED)) { Integer metadataid = Math.toIntExact(event.getMdId()); diff --git a/web-ui/src/main/resources/catalog/js/CatController.js b/web-ui/src/main/resources/catalog/js/CatController.js index cefa10369f7..0068980d2fb 100644 --- a/web-ui/src/main/resources/catalog/js/CatController.js +++ b/web-ui/src/main/resources/catalog/js/CatController.js @@ -1848,7 +1848,7 @@ ? "is" + profile[0].toUpperCase() + profile.substring(1) + "OrMore" : ""; if (profile ==="RegisteredUser") { - return true; + return true; } return angular.isFunction(this[fnName]) ? this[fnName]() : false; }, diff --git a/web-ui/src/main/resources/catalog/locales/ca-admin.json b/web-ui/src/main/resources/catalog/locales/ca-admin.json index 16de82864b6..a51e51e39fc 100644 --- a/web-ui/src/main/resources/catalog/locales/ca-admin.json +++ b/web-ui/src/main/resources/catalog/locales/ca-admin.json @@ -724,8 +724,8 @@ "system/metadata/thesaurusNamespace-help": "Based on this pattern, when creating a new thesaurus a namespace will be suggested. The pattern can contain \\{\\{type\\}\\} and \\{\\{filename\\}\\} placeholder for substitution.", "system/metadata/validation/removeSchemaLocation": "Eliminar la locatització de l'esquema per a la validació", "system/metadata/validation/removeSchemaLocation-help": "Si s'activa, amb el valor true, l'atribut schemaLocation en l'element arrel de la metadada s'elimina durant la validació i en desar la metadata. Això assegura que l'schemaLocation utilitzat per a la metadada és sempre l'esquema local.", - "system/metadata/history/enabled": "Habilitar la traçabilitat dels històrics de cada registre", - "system/metadata/history/enabled-help": "Quan s'activa, amb el valor 'true', cada esdeveniment que alteri un registre de metadades és registrat a la base de dades.", + "metadata/history/enabled": "Habilitar la traçabilitat dels històrics de cada registre", + "metadata/history/enabled-help": "Quan s'activa, amb el valor 'true', cada esdeveniment que alteri un registre de metadades és registrat a la base de dades.", "system/metadata/allThesaurus-help": "Si s'habilita, un tesaurus virtual es crearà contenint totes les paraules clau dels altres tesaurus. Això és útil quan el nom del tesaurus no és important i només la paraula clau importa. Per assegurar que els blocs de paraules clau es mantenen (amb el nom correcte del tesaurus), habilitar això també s'habilita una transformació en update-fixed-info que assignarà les paraules claus d'aquest tesaurus virtual a blocs amb el tesaurus correcte.", "system/metadataprivs": "Privilegis de la metadada", "system/metadataprivs/usergrouponly": "Només ajustar privilegis als grups de l'usuari", @@ -1464,4 +1464,4 @@ "es.version": "Elasticsearch version", "es.index": "Index name", "systemPropertiesProxyConfiguration": "Using http proxy settings in system properties." -} \ No newline at end of file +} diff --git a/web-ui/src/main/resources/catalog/locales/cs-admin.json b/web-ui/src/main/resources/catalog/locales/cs-admin.json index 8866dea6889..633aab6cf1a 100644 --- a/web-ui/src/main/resources/catalog/locales/cs-admin.json +++ b/web-ui/src/main/resources/catalog/locales/cs-admin.json @@ -724,8 +724,8 @@ "system/metadata/thesaurusNamespace-help": "Na základě tohoto vzoru bude při vytváření nového tezauru navržen jmenný prostor. Vzor může obsahovat zástupný symbol \\{\\{type\\}\\} a \\{\\{filename\\}\\} pro nahrazení.", "system/metadata/validation/removeSchemaLocation": "Odebrat schéma umístění pro ověření", "system/metadata/validation/removeSchemaLocation-help": "Je-li pravda, atribut schemaLocation v kořenovém elementu metadat je během ověřování a ukládání metadat odstraněn. Zaručuje, že schemaLocation použité pro metadata je vždy lokální schéma", - "system/metadata/history/enabled": "Povolit záznam historie záznamů", - "system/metadata/history/enabled-help": "Pokud je to pravda, je v databázi registrována každá událost, která mění záznamy metadat.", + "metadata/history/enabled": "Povolit záznam historie záznamů", + "metadata/history/enabled-help": "Pokud je to pravda, je v databázi registrována každá událost, která mění záznamy metadat.", "system/metadata/allThesaurus-help": "Pokud to platí, bude vytvořen virtuální tezaurus obsahující všechna klíčová slova ve všech ostatních tezaurech. To je užitečné v editoru, kdy není důležitý název tezauru, ale pouze klíčové slovo. Aby bylo možné zajistit uchování správných skupin klíčových slov (se správným názvem tezauru) aktivace této funkce rovněž umožní transformaci do aktualizovat-stanovené-info (update-fixed-info), kterým se přiřadí klíčové slovo do tezauru 'všechny' ke skupinám klíčových slov s odpovídajícím tezaurem pro dané klíčové slovo", "system/metadataprivs": "Výhradní práva k metadatům", "system/metadataprivs/usergrouponly": "Pouze nastavit výhradní práva ke skupinám uživatele", @@ -1464,4 +1464,4 @@ "es.version": "Elasticsearch version", "es.index": "Název indexu", "systemPropertiesProxyConfiguration": "Použití nastavení http proxy ve vlastnostech systému." -} \ No newline at end of file +} diff --git a/web-ui/src/main/resources/catalog/locales/da-admin.json b/web-ui/src/main/resources/catalog/locales/da-admin.json index 1b221715e17..6c04ccfd7ff 100644 --- a/web-ui/src/main/resources/catalog/locales/da-admin.json +++ b/web-ui/src/main/resources/catalog/locales/da-admin.json @@ -724,8 +724,8 @@ "system/metadata/thesaurusNamespace-help": "Når en ny tesaurus skabes, bliver et namespace baseret på dette mønster foreslået. ", "system/metadata/validation/removeSchemaLocation": "Fjern skemaplacering for validering", "system/metadata/validation/removeSchemaLocation-help": "Hvis sandt, fjernes schemaLocation-attributten i metadataens rod-element under valideringsprocessen og ved lagring af metadata. Det sikrer, at skemaplaceringen, der bruges til metadataene, altid er det lokale skema", - "system/metadata/history/enabled": "Aktiver håndtering af historiske poster", - "system/metadata/history/enabled-help": "Hvis denne er sand, registreres ethvert event, som ændrer metadata-instanserne.", + "metadata/history/enabled": "Aktiver håndtering af historiske poster", + "metadata/history/enabled-help": "Hvis denne er sand, registreres ethvert event, som ændrer metadata-instanserne.", "system/metadata/allThesaurus-help": "Hvis slået til, oprettes der en virtuel thesaurus, der indeholder alle søgeord i alle andre thesauri. Dette er nyttigt i editoren, når navnet på thesaurusen er ubetydeligt, og kun nøgleordet er vigtigt. For at sikre, at de korrekte nøgleordsblokke vedligeholdes (med korrekt thesaurus navn) aktiverer denne indstilling også en transformation i update-fixed-info, der vil tildele søgeordet i 'alle' thesaurus til nøgleordsblokke med den korrekte thesaurus som nøgleord.", "system/metadataprivs": "Metadata privilegier", "system/metadataprivs/usergrouponly": "Indstil kun privilegier til brugerens grupper", @@ -1464,4 +1464,4 @@ "es.version": "Elasticsearch version", "es.index": "Index name", "systemPropertiesProxyConfiguration": "Using http proxy settings in system properties." -} \ No newline at end of file +} diff --git a/web-ui/src/main/resources/catalog/locales/de-admin.json b/web-ui/src/main/resources/catalog/locales/de-admin.json index 3eecf613a51..847b23760c3 100644 --- a/web-ui/src/main/resources/catalog/locales/de-admin.json +++ b/web-ui/src/main/resources/catalog/locales/de-admin.json @@ -724,8 +724,8 @@ "system/metadata/thesaurusNamespace-help": "Based on this pattern, when creating a new thesaurus a namespace will be suggested. The pattern can contain \\{\\{type\\}\\} and \\{\\{filename\\}\\} placeholder for substitution.", "system/metadata/validation/removeSchemaLocation": "Entfernen Sie den Schemapfad zur Validierung", "system/metadata/validation/removeSchemaLocation-help": "Wenn zutreffend (true), wird das schemaLocation-Attribut im Stammelement der Metadaten während der Validierung und beim Speichern der Metadaten entfernt. Dadurch wird sichergestellt, dass die für die Metadaten verwendete schemaLocation immer das lokale Schema ist", - "system/metadata/history/enabled": "Aktivieren der Aufzeichnung der History", - "system/metadata/history/enabled-help": "Wenn zutreffend (true), wird jedes Ereignis, das Metadatensätze ändert, in der Datenbank registriert.", + "metadata/history/enabled": "Aktivieren der Aufzeichnung der History", + "metadata/history/enabled-help": "Wenn zutreffend (true), wird jedes Ereignis, das Metadatensätze ändert, in der Datenbank registriert.", "system/metadata/allThesaurus-help": "Wenn das Feld ausgewählt ist, wird ein virtueller Thesaurus generiert, der alle Schlagwörter aller anderen Thesauri enthält. Dies ist nützlich im Editor, wenn der Name des Thesaurus unwichtig ist und nur die Schlagwörter von Bedeutung sind. Um sicherzustellen, dass die richtigen Schlagwort-Blöcke (des korrekten Thesaurus-Namens) bearbeitet werden, wird gleichzeitig eine Transformation in update-fixed-info.xsl durchgeführt.", "system/metadataprivs": "Metadaten Berechtigungen", "system/metadataprivs/usergrouponly": "Nur Berechtigungen an die Gruppen der Nutzer vergeben", @@ -1464,4 +1464,4 @@ "es.version": "Elasticsearch version", "es.index": "Index name", "systemPropertiesProxyConfiguration": "Using http proxy settings in system properties." -} \ No newline at end of file +} diff --git a/web-ui/src/main/resources/catalog/locales/en-admin.json b/web-ui/src/main/resources/catalog/locales/en-admin.json index 9ece524fdeb..cc13aaa0cb8 100644 --- a/web-ui/src/main/resources/catalog/locales/en-admin.json +++ b/web-ui/src/main/resources/catalog/locales/en-admin.json @@ -731,8 +731,8 @@ "system/metadata/thesaurusNamespace-help": "Based on this pattern, when creating a new thesaurus a namespace will be suggested. The pattern can contain \\{\\{type\\}\\} and \\{\\{filename\\}\\} placeholder for substitution.", "system/metadata/validation/removeSchemaLocation": "Remove schema location for validation", "system/metadata/validation/removeSchemaLocation-help": "If true, the schemaLocation attribute in root element of the metadata is removed during validation and on metadata save. It ensures that the schemaLocation used for the metadata is always the local schema one", - "system/metadata/history/enabled": "Enable record history recording", - "system/metadata/history/enabled-help": "When true, every event that alters metadata records is registered in the database.", + "metadata/history/enabled": "Enable record history recording", + "metadata/history/enabled-help": "When true, every event that alters metadata records is registered in the database.", "system/metadata/allThesaurus-help": "If true then a virtual thesaurus will be created that contains all keywords in all other thesauri. This is useful in editor when the name of the thesaurus is unimportant and only the keyword is important. In order to ensure that the correct keyword blocks are maintained (with correct thesaurus name) enabling this will also enable a transform in update-fixed-info that will assign the keyword in the 'all' thesaurus to keyword blocks with the correct thesaurus for the keyword", "system/metadataprivs": "Metadata privileges", "system/metadataprivs/usergrouponly": "Only set privileges to user's groups", diff --git a/web-ui/src/main/resources/catalog/locales/es-admin.json b/web-ui/src/main/resources/catalog/locales/es-admin.json index 4ac01254684..4f526eb3020 100644 --- a/web-ui/src/main/resources/catalog/locales/es-admin.json +++ b/web-ui/src/main/resources/catalog/locales/es-admin.json @@ -724,8 +724,8 @@ "system/metadata/thesaurusNamespace-help": "Based on this pattern, when creating a new thesaurus a namespace will be suggested. The pattern can contain \\{\\{type\\}\\} and \\{\\{filename\\}\\} placeholder for substitution.", "system/metadata/validation/removeSchemaLocation": "Eliminar la ubicación del esquema para la validación", "system/metadata/validation/removeSchemaLocation-help": "Si es verdadero, el atributo schemaLocation en el elemento raíz del metadato se elimina durante la validación y el guardado del metadato. Asegura que schemaLocation utilizado para el metadato es siempre uno en el esquema local", - "system/metadata/history/enabled": "Habilitar el registro del historial de grabación", - "system/metadata/history/enabled-help": "Cuando es verdadero, todos los eventos que alteran los registros de metadatos se registran en la base de datos.", + "metadata/history/enabled": "Habilitar el registro del historial de grabación", + "metadata/history/enabled-help": "Cuando es verdadero, todos los eventos que alteran los registros de metadatos se registran en la base de datos.", "system/metadata/allThesaurus-help": "Si se habilita, un tesauro virtual se creará conteniendo todas las palabras clave de los otros tesauros. Esto es útil cuando el nombre del tesauro no es importante y sólo la palabra clave importa. Para asegurar que los bloques de palabras claves se mantienen (con el nombre correcto del tesauro), habilitar esto también habilita una transformación en update-fixed-info que asignará las palabras claves de este tesauro virtual a bloques con el tesauro correcto.", "system/metadataprivs": "Privilegios del metadato", "system/metadataprivs/usergrouponly": "Sólo ajustar privilegios a los grupos del usuario", @@ -1464,4 +1464,4 @@ "es.version": "Elasticsearch version", "es.index": "Index name", "systemPropertiesProxyConfiguration": "Using http proxy settings in system properties." -} \ No newline at end of file +} diff --git a/web-ui/src/main/resources/catalog/locales/fi-admin.json b/web-ui/src/main/resources/catalog/locales/fi-admin.json index 5c6fc214384..3579416a873 100644 --- a/web-ui/src/main/resources/catalog/locales/fi-admin.json +++ b/web-ui/src/main/resources/catalog/locales/fi-admin.json @@ -724,8 +724,8 @@ "system/metadata/thesaurusNamespace-help": "Based on this pattern, when creating a new thesaurus a namespace will be suggested. The pattern can contain \\{\\{type\\}\\} and \\{\\{filename\\}\\} placeholder for substitution.", "system/metadata/validation/removeSchemaLocation": "Remove schema location for validation", "system/metadata/validation/removeSchemaLocation-help": "If true, the schemaLocation attribute in root element of the metadata is removed during validation and on metadata save. It ensures that the schemaLocation used for the metadata is always the local schema one", - "system/metadata/history/enabled": "Enable record history recording", - "system/metadata/history/enabled-help": "When true, every event that alters metadata records is registered in the database.", + "metadata/history/enabled": "Enable record history recording", + "metadata/history/enabled-help": "When true, every event that alters metadata records is registered in the database.", "system/metadata/allThesaurus-help": "Valittuna virtuaalinen, kaikkien tesaurusten avainsanat sisältävä, tesaurus luodaan. Tämä on hyödyllistä editorissa, jossa tesauruksen nimellä ei ole merkitystä. Lisäohje:\nIn order to ensure that the correct keyword blocks are maintained (with correct thesaurus name) enabling this will also enable a transform in update-fixed-info that will assign the keyword in the 'all' thesaurus to keyword blocks with the correct thesaurus for the keyword", "system/metadataprivs": "Oikeudet metatietoihin", "system/metadataprivs/usergrouponly": "Aseta oikeudet vain käyttäjän ryhmille", @@ -1464,4 +1464,4 @@ "es.version": "Elasticsearch version", "es.index": "Index name", "systemPropertiesProxyConfiguration": "Using http proxy settings in system properties." -} \ No newline at end of file +} diff --git a/web-ui/src/main/resources/catalog/locales/fr-admin.json b/web-ui/src/main/resources/catalog/locales/fr-admin.json index 1545d4a33f4..9347ee66eab 100644 --- a/web-ui/src/main/resources/catalog/locales/fr-admin.json +++ b/web-ui/src/main/resources/catalog/locales/fr-admin.json @@ -724,8 +724,8 @@ "system/metadata/thesaurusNamespace-help": "En fonction du modèle, lors de la création d'un nouveau thésaurus, un espace de nom sera proposé automatiquement. Le modèle peut contenir \\{\\{type\\}\\} et \\{\\{filename\\}\\} pour être substituté.", "system/metadata/validation/removeSchemaLocation": "Supprimer l'adresse du schéma XSD pour la validation (@xsi:schemaLocation).", "system/metadata/validation/removeSchemaLocation-help": "Si sélectionné, l'attribut schemaLocation est supprimé de l'élément racine du XML. Cela permet d'utiliser systématiquement le schéma XSD interne définit par le plugin.", - "system/metadata/history/enabled": "Activer l'historique des fiches", - "system/metadata/history/enabled-help": "Une fois actif, les événements réalisés sur la fiche sont enregistrés en base de données.", + "metadata/history/enabled": "Activer l'historique des fiches", + "metadata/history/enabled-help": "Une fois actif, les événements réalisés sur la fiche sont enregistrés en base de données.", "system/metadata/allThesaurus-help": "Si sélectionné, un thésaurus virtuel est créé contenant tous les mots clés de tous les thésaurus. Cela est utilisé dans l'éditeur quand le nom du thésaurus n'est pas important. Lorsque cette option est activée, les mots clés sont répartis dans les thésaurus lors de la sauvegarde (dans le processus update-fixed-info).", "system/metadataprivs": "Gestion des privilèges", "system/metadataprivs/usergrouponly": "Définir uniquement les privilèges pour les groupes de l'utilisateur", @@ -1464,4 +1464,4 @@ "es.version": "Elasticsearch version", "es.index": "Nom de l'index", "systemPropertiesProxyConfiguration": "Utilisation des paramètres de proxy http dans les propriétés du système." -} \ No newline at end of file +} diff --git a/web-ui/src/main/resources/catalog/locales/is-admin.json b/web-ui/src/main/resources/catalog/locales/is-admin.json index e468886bd7f..7e096346284 100644 --- a/web-ui/src/main/resources/catalog/locales/is-admin.json +++ b/web-ui/src/main/resources/catalog/locales/is-admin.json @@ -724,8 +724,8 @@ "system/metadata/thesaurusNamespace-help": "Based on this pattern, when creating a new thesaurus a namespace will be suggested. The pattern can contain \\{\\{type\\}\\} and \\{\\{filename\\}\\} placeholder for substitution.", "system/metadata/validation/removeSchemaLocation": "Fjarlægja skema staðsetningu fyrir gæðamat", "system/metadata/validation/removeSchemaLocation-help": "Ef satt, er schemaLocation eigindið í rótarþætti lýsigagnanna fjarlægt á meðan á gæðamati stendur og lýsigögn vistuð. Það tryggir að schemaLocation sem notað er fyrir lýsigögnin er alltaf staðbundna skemað", - "system/metadata/history/enabled": "Enable record history recording", - "system/metadata/history/enabled-help": "When true, every event that alters metadata records is registered in the database.", + "metadata/history/enabled": "Enable record history recording", + "metadata/history/enabled-help": "When true, every event that alters metadata records is registered in the database.", "system/metadata/allThesaurus-help": "Ef rétt þá verður búinn til sýndarhugtakalisti sem inniheldur öll leitarorð annarra hugtakalista. Þetta er gagnlegt í breytiham þegar nafn hugtakalistans skiptir ekki máli og einungis leitarorðið er mikilvægt. Til að tryggja að réttum leitarorðabálki sé haldið við (með réttu nafni á hugtakalista) mun það að virkja þetta einnig virkja ummyndun í update-fixed-info sem mun úthluta leitarorðinu í 'all' hugtakalistanum í leitarorðalista með réttum hugtakalista fyrir leitarorðið", "system/metadataprivs": "Lýsigögn sérrettindi", "system/metadataprivs/usergrouponly": "Aðeins stilla sérrettindi á notendahópa", @@ -1464,4 +1464,4 @@ "es.version": "Elasticsearch version", "es.index": "Index name", "systemPropertiesProxyConfiguration": "Using http proxy settings in system properties." -} \ No newline at end of file +} diff --git a/web-ui/src/main/resources/catalog/locales/it-admin.json b/web-ui/src/main/resources/catalog/locales/it-admin.json index 58d4bf19f69..e5e0cec6401 100644 --- a/web-ui/src/main/resources/catalog/locales/it-admin.json +++ b/web-ui/src/main/resources/catalog/locales/it-admin.json @@ -724,8 +724,8 @@ "system/metadata/thesaurusNamespace-help": "Based on this pattern, when creating a new thesaurus a namespace will be suggested. The pattern can contain \\{\\{type\\}\\} and \\{\\{filename\\}\\} placeholder for substitution.", "system/metadata/validation/removeSchemaLocation": "Rimuovi il percorso dello schema per la validazione", "system/metadata/validation/removeSchemaLocation-help": "Se impostato, l'attributo schemaLocation nell'elemento root dei metadati viene rimosso durante la convalida e il salvataggio dei metadati. Per la validazione, auindi, verrà utilizzato uno schema locale", - "system/metadata/history/enabled": "Enable record history recording", - "system/metadata/history/enabled-help": "When true, every event that alters metadata records is registered in the database.", + "metadata/history/enabled": "Enable record history recording", + "metadata/history/enabled-help": "When true, every event that alters metadata records is registered in the database.", "system/metadata/allThesaurus-help": "Se è vero, verrà creato un thesaurus virtuale contenente tutte le parole chiave degli altri thesauri. Questo è utile nell'editor quando il nome del thesaurus non è importante e solo la parola chiave è importante. Per garantire che i blocchi di parole chiave corretti siano mantenuti (con il nome del thesaurus corretto), abilitando questa opzione si abiliterà anche una trasformazione in update-fixed-info che assegnerà la parola chiave nel thesaurus 'all' a blocchi di parole chiave con il thesaurus corretto per la parola chiave", "system/metadataprivs": "Privilegi sui metadati", "system/metadataprivs/usergrouponly": "Imposta solo i privilegi ai gruppi utente", @@ -1464,4 +1464,4 @@ "es.version": "Elasticsearch version", "es.index": "Index name", "systemPropertiesProxyConfiguration": "Using http proxy settings in system properties." -} \ No newline at end of file +} diff --git a/web-ui/src/main/resources/catalog/locales/ko-admin.json b/web-ui/src/main/resources/catalog/locales/ko-admin.json index e7acdda4392..86184b0476d 100644 --- a/web-ui/src/main/resources/catalog/locales/ko-admin.json +++ b/web-ui/src/main/resources/catalog/locales/ko-admin.json @@ -724,8 +724,8 @@ "system/metadata/thesaurusNamespace-help": "Based on this pattern, when creating a new thesaurus a namespace will be suggested. The pattern can contain \\{\\{type\\}\\} and \\{\\{filename\\}\\} placeholder for substitution.", "system/metadata/validation/removeSchemaLocation": "유효성 검증을 위해 스키마 위치 제거", "system/metadata/validation/removeSchemaLocation-help": "true인 경우 유효성 검사 및 메타 데이터 저장시 메타데이터의 루트 요소에 있는 schemaLocation 속성이 제거됩니다. 이는 메타데이터에 사용된 스키마 위치가 항상 로컬 스키마임을 보장합니다.", - "system/metadata/history/enabled": "Enable record history recording", - "system/metadata/history/enabled-help": "When true, every event that alters metadata records is registered in the database.", + "metadata/history/enabled": "Enable record history recording", + "metadata/history/enabled-help": "When true, every event that alters metadata records is registered in the database.", "system/metadata/allThesaurus-help": "만약 true이면 가상 동의어 사전은 다른 동의어 사전의 모든 티워드를 포함하여 생성될 것입니다. 이는 편집시에 동의어 사전의 유형은 중요하지 않고 키워드 만이 중요할때 유용하게 사용됩니다. 정확한 키워드 블럭의 (정확한 어구 이름으로) 유지되는 지를 확인합니다. 이것은 또한 키워드에 대한 올바른 시소러스와 블록을 키워드 'all'동의어 사전에 키워드를 할당합니다. update-fixed-info의 변환을 가능하게 할 것이다", "system/metadataprivs": "메타데이터 권한", "system/metadataprivs/usergrouponly": "사용자 그룹에 대한 권한 설정", @@ -1464,4 +1464,4 @@ "es.version": "Elasticsearch version", "es.index": "Index name", "systemPropertiesProxyConfiguration": "Using http proxy settings in system properties." -} \ No newline at end of file +} diff --git a/web-ui/src/main/resources/catalog/locales/nl-admin.json b/web-ui/src/main/resources/catalog/locales/nl-admin.json index ba8b7a67e9c..a1ac98c4b82 100644 --- a/web-ui/src/main/resources/catalog/locales/nl-admin.json +++ b/web-ui/src/main/resources/catalog/locales/nl-admin.json @@ -724,8 +724,8 @@ "system/metadata/thesaurusNamespace-help": "Op basis van dit patroon zal een namespace worden gesuggereerd wanneer een nieuwe thesaurus wordt aangemaakt. Het patroon kan placeholders \\{\\{type\\}\\} en \\{\\{filename\\}\\} bevatten ter vervanging.", "system/metadata/validation/removeSchemaLocation": "Verwijder schema locatie voorafgaand aan validatie", "system/metadata/validation/removeSchemaLocation-help": "Indien waar, wordt het attribuut schemaLocation in het hoofdelement van de metadata verwijderd tijdens validatie en bij het opslaan van metadata. Het zorgt ervoor dat de schemaLocation die voor de metadata wordt gebruikt altijd het lokale schema is", - "system/metadata/history/enabled": "Activeer opslag van record historie", - "system/metadata/history/enabled-help": "Alle mutatie activiteit rond een record wordt opgeslagen in de database", + "metadata/history/enabled": "Activeer opslag van record historie", + "metadata/history/enabled-help": "Alle mutatie activiteit rond een record wordt opgeslagen in de database", "system/metadata/allThesaurus-help": "Indien ingeschakeld zal een virtuele thesaurus aangemaakt worden die alle sleutelwoorden uit andere thesauri bevat. Dit is handig in de editor wanneer de naam van de thesaurus onbelangrijk is en enkel het sleutelwoord van belang is. Om ervoor te zorgen dat de correcte sleutelwoord blokken worden behouden (met een correcte thesaurus naam) zorgt dit er ook voor dat een transformatie in update-fixed-info ingeschakeld wordt dat het sleutelwoord in de 'all' thesaurus toewijst aan sleutelwoord blokken met de correcte thesaurus voor het sleutelwoord.", "system/metadataprivs": "metadata privileges", "system/metadataprivs/usergrouponly": "Stel alleen rechten in voor de groepen van de gebruiker", @@ -1464,4 +1464,4 @@ "es.version": "Elasticsearch version", "es.index": "Indexnaam", "systemPropertiesProxyConfiguration": "Gebruik de HTTP proxy instellingen in de systeem eigenschappen." -} \ No newline at end of file +} diff --git a/web-ui/src/main/resources/catalog/locales/pt-admin.json b/web-ui/src/main/resources/catalog/locales/pt-admin.json index 90cea6ef3dc..f86c031baa9 100644 --- a/web-ui/src/main/resources/catalog/locales/pt-admin.json +++ b/web-ui/src/main/resources/catalog/locales/pt-admin.json @@ -724,8 +724,8 @@ "system/metadata/thesaurusNamespace-help": "Based on this pattern, when creating a new thesaurus a namespace will be suggested. The pattern can contain \\{\\{type\\}\\} and \\{\\{filename\\}\\} placeholder for substitution.", "system/metadata/validation/removeSchemaLocation": "Remover esquema de localização para validação", "system/metadata/validation/removeSchemaLocation-help": "Se verdadeiro, o atributo schemaLocation no elemento root do metadado é removido durante a validação e no metadado salvo. Isto assegura que o schemaLocation usado para o metadado é sempre igual ao esquema local.", - "system/metadata/history/enabled": "Habilitar gravação de histórico de registros", - "system/metadata/history/enabled-help": "When true, every event that alters metadata records is registered in the database.", + "metadata/history/enabled": "Habilitar gravação de histórico de registros", + "metadata/history/enabled-help": "When true, every event that alters metadata records is registered in the database.", "system/metadata/allThesaurus-help": "Se habilitado, um dicionário de sinônimos virtual que contém palavras-chave em todos outros dicionários será criado. Isso é útil no editor quando o nome do dicionário não é importante e somente a palavra-chave importa. A fim de garantir que blocos de palavra-chave corretos são mantidos (com o nome correto do dicionário) isso também habilitará a transformação em update-fixed-info que sa", "system/metadataprivs": "Privilégios de metadados", "system/metadataprivs/usergrouponly": "Só atribua privilégios aos grupos de usuários", @@ -1464,4 +1464,4 @@ "es.version": "Elasticsearch version", "es.index": "Index name", "systemPropertiesProxyConfiguration": "Using http proxy settings in system properties." -} \ No newline at end of file +} diff --git a/web-ui/src/main/resources/catalog/locales/ru-admin.json b/web-ui/src/main/resources/catalog/locales/ru-admin.json index d12ef8f5610..c8e4e7acbef 100644 --- a/web-ui/src/main/resources/catalog/locales/ru-admin.json +++ b/web-ui/src/main/resources/catalog/locales/ru-admin.json @@ -724,8 +724,8 @@ "system/metadata/thesaurusNamespace-help": "Based on this pattern, when creating a new thesaurus a namespace will be suggested. The pattern can contain \\{\\{type\\}\\} and \\{\\{filename\\}\\} placeholder for substitution.", "system/metadata/validation/removeSchemaLocation": "Remove schema location for validation", "system/metadata/validation/removeSchemaLocation-help": "If true, the schemaLocation attribute in root element of the metadata is removed during validation and on metadata save. It ensures that the schemaLocation used for the metadata is always the local schema one", - "system/metadata/history/enabled": "Enable record history recording", - "system/metadata/history/enabled-help": "When true, every event that alters metadata records is registered in the database.", + "metadata/history/enabled": "Enable record history recording", + "metadata/history/enabled-help": "When true, every event that alters metadata records is registered in the database.", "system/metadata/allThesaurus-help": "If true then a virtual thesaurus will be created that contains all keywords in all other thesauri. This is useful in editor when the name of the thesaurus is unimportant and only the keyword is important. In order to ensure that the correct keyword blocks are maintained (with correct thesaurus name) enabling this will also enable a transform in update-fixed-info that will assign the keyword in the 'all' thesaurus to keyword blocks with the correct thesaurus for the keyword", "system/metadataprivs": "Metadata privileges", "system/metadataprivs/usergrouponly": "Only set privileges to user's groups", @@ -1464,4 +1464,4 @@ "es.version": "Elasticsearch version", "es.index": "Index name", "systemPropertiesProxyConfiguration": "Using http proxy settings in system properties." -} \ No newline at end of file +} diff --git a/web-ui/src/main/resources/catalog/locales/sk-admin.json b/web-ui/src/main/resources/catalog/locales/sk-admin.json index 8ca3fde8f22..cd59afdb50f 100644 --- a/web-ui/src/main/resources/catalog/locales/sk-admin.json +++ b/web-ui/src/main/resources/catalog/locales/sk-admin.json @@ -724,8 +724,8 @@ "system/metadata/thesaurusNamespace-help": "Based on this pattern, when creating a new thesaurus a namespace will be suggested. The pattern can contain \\{\\{type\\}\\} and \\{\\{filename\\}\\} placeholder for substitution.", "system/metadata/validation/removeSchemaLocation": "Remove schema location for validation", "system/metadata/validation/removeSchemaLocation-help": "If true, the schemaLocation attribute in root element of the metadata is removed during validation and on metadata save. It ensures that the schemaLocation used for the metadata is always the local schema one", - "system/metadata/history/enabled": "Enable record history recording", - "system/metadata/history/enabled-help": "When true, every event that alters metadata records is registered in the database.", + "metadata/history/enabled": "Enable record history recording", + "metadata/history/enabled-help": "When true, every event that alters metadata records is registered in the database.", "system/metadata/allThesaurus-help": "Pokiaľ to platí, bude vytvorený virtuálne tezaurus obsahujúci všetky kľúčové slová vo všetkých ostatných tezauroch. To je užitočné v editore, kedy nie je dôležitý názov tezauru, ale len kľúčové slovo. Aby bolo možné zaistiť uchovanie správnych skupín kľúčových slov (so správnym názvom tezauru) aktivácia tejto funkcie rovnako umožní transformáciu do aktualizovať-stanovené-info (update-fixed-info), ktorým sa priradí kľúčové slovo do tezauru 'všetky' ku skupinám kľúčových slov s odpovedajúcim tezaurom pre dané kľúčové slovo", "system/metadataprivs": "Výhradné práva k metaúdajom", "system/metadataprivs/usergrouponly": "Len nastaviť výhradné práva ku skupinám užívateľa", @@ -1464,4 +1464,4 @@ "es.version": "Elasticsearch version", "es.index": "Index name", "systemPropertiesProxyConfiguration": "Using http proxy settings in system properties." -} \ No newline at end of file +} diff --git a/web-ui/src/main/resources/catalog/locales/sv-admin.json b/web-ui/src/main/resources/catalog/locales/sv-admin.json index cb067c5e59a..1d80943b153 100644 --- a/web-ui/src/main/resources/catalog/locales/sv-admin.json +++ b/web-ui/src/main/resources/catalog/locales/sv-admin.json @@ -724,8 +724,8 @@ "system/metadata/thesaurusNamespace-help": "Based on this pattern, when creating a new thesaurus a namespace will be suggested. The pattern can contain \\{\\{type\\}\\} and \\{\\{filename\\}\\} placeholder for substitution.", "system/metadata/validation/removeSchemaLocation": "Ta bort schemaplats för validering", "system/metadata/validation/removeSchemaLocation-help": "Om sann tas schemaLocation-attributet i rotelementet i metadata bort under validering och när metadata sparas. Det säkerställer att schemaLocation som används för metadata alltid är det lokala schemat", - "system/metadata/history/enabled": "Aktivera registrering av historik", - "system/metadata/history/enabled-help": "Om sann registreras varje händelse som ändrar metadataposter i databasen.", + "metadata/history/enabled": "Aktivera registrering av historik", + "metadata/history/enabled-help": "Om sann registreras varje händelse som ändrar metadataposter i databasen.", "system/metadata/allThesaurus-help": "Om sann kommer en virtuell tesaurus att skapas som innehåller alla nyckelord i alla andra tesaurier. Detta är användbart i redigeraren när namnet på ordboken är oviktigigt och bara nyckelordet är viktigt. För att säkerställa att de korrekta sökordsblocken upprätthålls (med rätt ordboksnamn), vilket också möjliggör en omvandling i uppdateringsfix-information som kommer att tilldela nyckelordet i "all" samtal till nyckelordblock med rätt tesaurus för nyckelord", "system/metadataprivs": "Metadatarättigheter", "system/metadataprivs/usergrouponly": "Ange rättigheter endast för användargrupper", @@ -1464,4 +1464,4 @@ "es.version": "Elasticsearch version", "es.index": "Index name", "systemPropertiesProxyConfiguration": "Using http proxy settings in system properties." -} \ No newline at end of file +} diff --git a/web-ui/src/main/resources/catalog/locales/zh-admin.json b/web-ui/src/main/resources/catalog/locales/zh-admin.json index cf1703c73ee..4f25fbb4e91 100644 --- a/web-ui/src/main/resources/catalog/locales/zh-admin.json +++ b/web-ui/src/main/resources/catalog/locales/zh-admin.json @@ -724,8 +724,8 @@ "system/metadata/thesaurusNamespace-help": "Based on this pattern, when creating a new thesaurus a namespace will be suggested. The pattern can contain \\{\\{type\\}\\} and \\{\\{filename\\}\\} placeholder for substitution.", "system/metadata/validation/removeSchemaLocation": "Remove schema location for validation", "system/metadata/validation/removeSchemaLocation-help": "If true, the schemaLocation attribute in root element of the metadata is removed during validation and on metadata save. It ensures that the schemaLocation used for the metadata is always the local schema one", - "system/metadata/history/enabled": "Enable record history recording", - "system/metadata/history/enabled-help": "When true, every event that alters metadata records is registered in the database.", + "metadata/history/enabled": "Enable record history recording", + "metadata/history/enabled-help": "When true, every event that alters metadata records is registered in the database.", "system/metadata/allThesaurus-help": "If true then a virtual thesaurus will be created that contains all keywords in all other thesauri. This is useful in editor when the name of the thesaurus is unimportant and only the keyword is important. In order to ensure that the correct keyword blocks are maintained (with correct thesaurus name) enabling this will also enable a transform in update-fixed-info that will assign the keyword in the 'all' thesaurus to keyword blocks with the correct thesaurus for the keyword", "system/metadataprivs": "元数据特权", "system/metadataprivs/usergrouponly": "只设置用户组的权限", @@ -1464,4 +1464,4 @@ "es.version": "Elasticsearch version", "es.index": "Index name", "systemPropertiesProxyConfiguration": "Using http proxy settings in system properties." -} \ No newline at end of file +} diff --git a/web/src/main/webapp/WEB-INF/classes/setup/sql/data/data-db-default.sql b/web/src/main/webapp/WEB-INF/classes/setup/sql/data/data-db-default.sql index b21d6b9ea6a..a3b82b8209d 100644 --- a/web/src/main/webapp/WEB-INF/classes/setup/sql/data/data-db-default.sql +++ b/web/src/main/webapp/WEB-INF/classes/setup/sql/data/data-db-default.sql @@ -650,7 +650,7 @@ INSERT INTO Settings (name, value, datatype, position, internal) VALUES ('system INSERT INTO Settings (name, value, datatype, position, internal) VALUES ('metadata/vcs/enable', 'false', 2, 9161, 'n'); INSERT INTO Settings (name, value, datatype, position, internal) VALUES ('system/metadata/validation/removeSchemaLocation', 'false', 2, 9170, 'n'); -INSERT INTO Settings (name, value, datatype, position, internal) VALUES ('system/metadata/history/enabled', 'false', 2, 9171, 'n'); +INSERT INTO Settings (name, value, datatype, position, internal) VALUES ('metadata/history/enabled', 'false', 2, 9171, 'n'); INSERT INTO Settings (name, value, datatype, position, internal) VALUES ('system/metadatacreate/generateUuid', 'true', 2, 9100, 'n'); INSERT INTO Settings (name, value, datatype, position, internal) VALUES ('system/metadatacreate/preferredGroup', '', 1, 9105, 'n'); INSERT INTO Settings (name, value, datatype, position, internal) VALUES ('system/metadatacreate/preferredTemplate', '', 0, 9106, 'n'); diff --git a/web/src/main/webapp/WEB-INF/classes/setup/sql/migrate/v350/migrate-default.sql b/web/src/main/webapp/WEB-INF/classes/setup/sql/migrate/v350/migrate-default.sql index 0cbe161ef84..a29cf995ec8 100644 --- a/web/src/main/webapp/WEB-INF/classes/setup/sql/migrate/v350/migrate-default.sql +++ b/web/src/main/webapp/WEB-INF/classes/setup/sql/migrate/v350/migrate-default.sql @@ -5,7 +5,7 @@ INSERT INTO Settings (name, value, datatype, position, internal) VALUES ('system INSERT INTO Settings (name, value, datatype, position, internal) VALUES ('system/publication/doi/doipassword', '', 0, 194, 'n'); INSERT INTO Settings (name, value, datatype, position, internal) VALUES ('system/publication/doi/doikey', '', 0, 195, 'n'); INSERT INTO Settings (name, value, datatype, position, internal) VALUES ('system/publication/doi/doilandingpagetemplate', 'http://localhost:8080/geonetwork/srv/resources/records/{{uuid}}', 0, 195, 'n'); -INSERT INTO Settings (name, value, datatype, position, internal) VALUES ('system/metadata/history/enabled', 'false', 2, 9171, 'n'); +INSERT INTO Settings (name, value, datatype, position, internal) VALUES ('metadata/history/enabled', 'false', 2, 9171, 'n'); UPDATE StatusValues SET type = 'workflow'; diff --git a/web/src/main/webapp/WEB-INF/classes/setup/sql/migrate/v440/migrate-default.sql b/web/src/main/webapp/WEB-INF/classes/setup/sql/migrate/v440/migrate-default.sql index 612d36c1748..f74b0a6de7b 100644 --- a/web/src/main/webapp/WEB-INF/classes/setup/sql/migrate/v440/migrate-default.sql +++ b/web/src/main/webapp/WEB-INF/classes/setup/sql/migrate/v440/migrate-default.sql @@ -2,4 +2,3 @@ UPDATE Settings SET value='4.4.0' WHERE name='system/platform/version'; UPDATE Settings SET value='0' WHERE name='system/platform/subVersion'; INSERT INTO Settings (name, value, datatype, position, internal) SELECT distinct 'metadata/batchediting/accesslevel', 'Editor', 0, 12020, 'n' from settings WHERE NOT EXISTS (SELECT name FROM Settings WHERE name = 'metadata/batchediting/accesslevel'); -INSERT INTO Settings (name, value, datatype, position, internal) SELECT distinct 'metadata/history/accesslevel', 'Editor', 0, 12021, 'n' from settings WHERE NOT EXISTS (SELECT name FROM Settings WHERE name = 'metadata/history/accesslevel'); diff --git a/web/src/main/webapp/WEB-INF/classes/setup/sql/migrate/v441/migrate-default.sql b/web/src/main/webapp/WEB-INF/classes/setup/sql/migrate/v441/migrate-default.sql index 172f4fc129e..f325baa5a22 100644 --- a/web/src/main/webapp/WEB-INF/classes/setup/sql/migrate/v441/migrate-default.sql +++ b/web/src/main/webapp/WEB-INF/classes/setup/sql/migrate/v441/migrate-default.sql @@ -1,2 +1,6 @@ UPDATE Settings SET value='4.4.1' WHERE name='system/platform/version'; UPDATE Settings SET value='SNAPSHOT' WHERE name='system/platform/subVersion'; + +UPDATE settings SET name='metadata/history/enabled' WHERE name='system/metadata/history/enabled' + +INSERT INTO Settings (name, value, datatype, position, internal) SELECT distinct 'metadata/history/accesslevel', 'Editor', 0, 12021, 'n' from settings WHERE NOT EXISTS (SELECT name FROM Settings WHERE name = 'metadata/history/accesslevel'); From 4f16b91e014fe8321e3eb6269687b8036b7a7d31 Mon Sep 17 00:00:00 2001 From: WANGF Date: Thu, 16 Nov 2023 13:36:24 -0500 Subject: [PATCH 13/24] Help text update --- web-ui/src/main/resources/catalog/locales/en-admin.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web-ui/src/main/resources/catalog/locales/en-admin.json b/web-ui/src/main/resources/catalog/locales/en-admin.json index cc13aaa0cb8..b5ad8f05053 100644 --- a/web-ui/src/main/resources/catalog/locales/en-admin.json +++ b/web-ui/src/main/resources/catalog/locales/en-admin.json @@ -883,7 +883,7 @@ "metadata/publication/profileUnpublishMetadata-help": "Minimum user profile allowed to un-publish metadata (Reviewer or Administrator). The default value is Reviewer.", "metadata/history": "Metadata History", "metadata/history/accesslevel": "Select the minimum user profile allowed to view metadata history", - "metadata/history/accesslevel-help": "Select the minimum user profile allowed to view metadata history (Registered User, Editor or Administrator). The default value is Editor.", + "metadata/history/accesslevel-help": "Select the user profile allowed to view metadata history (Registered User, Editor or Administrator). The Registered User configuration can view the history with view permission granted to the metadata record. The Editor configuration can view the history with editing permission granted to the metadata record. The default value is Editor.", "filterStatusByAuthor":"Status author", "filterStatusByOwner":"Status owner", "filterStatusByRecordId":"Record identifier", From e2e76ffb5361d397c0b9a384e25e24c0274135d7 Mon Sep 17 00:00:00 2001 From: WANGF Date: Thu, 16 Nov 2023 13:46:56 -0500 Subject: [PATCH 14/24] Readme update --- .../img/metadata_history.png | Bin 0 -> 32148 bytes .../img/metadata_history_config.png | Bin 0 -> 45335 bytes .../system-configuration.md | 13 +++++++++++++ 3 files changed, 13 insertions(+) create mode 100644 docs/manual/docs/administrator-guide/configuring-the-catalog/img/metadata_history.png create mode 100644 docs/manual/docs/administrator-guide/configuring-the-catalog/img/metadata_history_config.png diff --git a/docs/manual/docs/administrator-guide/configuring-the-catalog/img/metadata_history.png b/docs/manual/docs/administrator-guide/configuring-the-catalog/img/metadata_history.png new file mode 100644 index 0000000000000000000000000000000000000000..a89837bfcbd415eb747b056377fcb0c87bec5738 GIT binary patch literal 32148 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

*1YafeHmfcpX6=Ys&=m!&8}! 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 literal 0 HcmV?d00001 diff --git a/docs/manual/docs/administrator-guide/configuring-the-catalog/system-configuration.md b/docs/manual/docs/administrator-guide/configuring-the-catalog/system-configuration.md index 07ed71a5567..beaa44fcf16 100644 --- a/docs/manual/docs/administrator-guide/configuring-the-catalog/system-configuration.md +++ b/docs/manual/docs/administrator-guide/configuring-the-catalog/system-configuration.md @@ -230,6 +230,19 @@ Allows to configure the user profile allowed to publish and un-publish metadata. ![](img/metadata-publication.png) +## Metadata History + +Allows to view metadata history + +![](img/metadata_history.png) + +- **Minimum user profile allowed to view metadata history** Minimum user profile allowed to delete metadata (`Registered User`, `Editor` or `Administrator`). The default value is `Editor`. +![](img/metadata_history_config.png) + +- **Registered User Configuration** The user who has granted view permission to the metadata record can view the history. +- **Editor Configuration** The user who has granted editing permission to the metadata record can view the history. +- **Administrator Configuration** The user who has granted system administrator permission can view the history. + ## Harvesting *Allow editing on harvested records*: Enables/Disables editing of harvested records in the catalogue. By default, harvested records cannot be edited. From 7974efa28df068f6aaf2a12afb8b3d6aeb54b585 Mon Sep 17 00:00:00 2001 From: wangf1122 <74916635+wangf1122@users.noreply.github.com> Date: Thu, 16 Nov 2023 13:50:58 -0500 Subject: [PATCH 15/24] Update web-ui/src/main/resources/catalog/templates/admin/settings/system.html MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Jose García --- .../main/resources/catalog/templates/admin/settings/system.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web-ui/src/main/resources/catalog/templates/admin/settings/system.html b/web-ui/src/main/resources/catalog/templates/admin/settings/system.html index 6ddaf0da47d..e4de87d0ec2 100644 --- a/web-ui/src/main/resources/catalog/templates/admin/settings/system.html +++ b/web-ui/src/main/resources/catalog/templates/admin/settings/system.html @@ -259,7 +259,7 @@

{{section2.name | translate}}

class="form-control" name="{{s.name}}" > -