diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/capability/rm-capabilities-group-context.xml b/rm-server/config/alfresco/module/org_alfresco_module_rm/capability/rm-capabilities-group-context.xml
index 99fe40a51f..f1afccb48a 100644
--- a/rm-server/config/alfresco/module/org_alfresco_module_rm/capability/rm-capabilities-group-context.xml
+++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/capability/rm-capabilities-group-context.xml
@@ -8,6 +8,7 @@
class="org.alfresco.module.org_alfresco_module_rm.capability.impl.CreateCapability">
+
diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/capability/rm-capabilities-rule-context.xml b/rm-server/config/alfresco/module/org_alfresco_module_rm/capability/rm-capabilities-rule-context.xml
index 518f6a42f0..3175faf8ed 100644
--- a/rm-server/config/alfresco/module/org_alfresco_module_rm/capability/rm-capabilities-rule-context.xml
+++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/capability/rm-capabilities-rule-context.xml
@@ -12,6 +12,7 @@
diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/dod5015/dod5015-model_nl.properties b/rm-server/config/alfresco/module/org_alfresco_module_rm/dod5015/dod5015-model_nl.properties
new file mode 100755
index 0000000000..183449f69e
--- /dev/null
+++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/dod5015/dod5015-model_nl.properties
@@ -0,0 +1,73 @@
+dod_dod5015.description=DOD5015 contentmodel
+
+dod_dod5015.type.dod_recordSeries.title=Record Series (Afgekeurd)
+dod_dod5015.type.dod_recordSeries.description=Record Series (Afgekeurd)
+
+dod_dod5015.aspect.dod_scannedRecord.title=Gescand record
+dod_dod5015.aspect.dod_scannedRecord.description=Gescand record
+dod_dod5015.property.dod_scannedFormat.title=Beeldindeling
+dod_dod5015.property.dod_scannedFormat.description=Beeldindeling
+dod_dod5015.property.dod_scannedFormatVersion.title=Beeldformaat en -versie
+dod_dod5015.property.dod_scannedFormatVersion.description=Beeldformaat en -versie
+dod_dod5015.property.dod_resolutionX.title=Beeldresolutie X
+dod_dod5015.property.dod_resolutionX.description=Beeldresolutie X
+dod_dod5015.property.dod_resolutionY.title=Beeldresolutie Y
+dod_dod5015.property.dod_resolutionY.description=Beeldresolutie Y
+dod_dod5015.property.dod_scannedBitDepth.title=Gescande bit-diepte
+dod_dod5015.property.dod_scannedBitDepth.description=Gescande bit-diepte
+
+dod_dod5015.aspect.dod_pdfRecord.title=PDF-record
+dod_dod5015.aspect.dod_pdfRecord.description=PDF-record
+dod_dod5015.property.dod_producingApplication.title=Originele applicatie
+dod_dod5015.property.dod_producingApplication.description=Originele applicatie
+dod_dod5015.property.dod_producingApplicationVersion.title=Originele applicatieversie
+dod_dod5015.property.dod_producingApplicationVersion.description=Originele applicatieversie
+dod_dod5015.property.dod_pdfVersion.title=PDF-versie
+dod_dod5015.property.dod_pdfVersion.description=PDF-versie
+dod_dod5015.property.dod_creatingApplication.title=Applicatie cre\u00ebren
+dod_dod5015.property.dod_creatingApplication.description=Applicatie cre\u00ebren
+dod_dod5015.property.dod_documentSecuritySettings.title=Document Beveiligingsinstellingen
+dod_dod5015.property.dod_documentSecuritySettings.description=Document Beveiligingsinstellingen
+
+dod_dod5015.aspect.dod_digitalPhotographRecord.title=Digitale Foto Record
+dod_dod5015.aspect.dod_digitalPhotographRecord.description=Digitale Foto Record
+dod_dod5015.property.dod_caption.title=Bijschrift
+dod_dod5015.property.dod_caption.description=Bijschrift
+dod_dod5015.property.dod_photographer.title=Fotograaf
+dod_dod5015.property.dod_photographer.description=Fotograaf
+dod_dod5015.property.dod_copyright.title=Copyright
+dod_dod5015.property.dod_copyright.description=Copyright
+dod_dod5015.property.dod_bitDepth.title=Bit-diepte
+dod_dod5015.property.dod_bitDepth.description=Bit-diepte
+dod_dod5015.property.dod_imageSizeX.title=Beeldgrootte X
+dod_dod5015.property.dod_imageSizeX.description=Beeldgrootte X
+dod_dod5015.property.dod_imageSizeY.title=Beeldgrootte\u00a0Y
+dod_dod5015.property.dod_imageSizeY.description=Beeldgrootte\u00a0Y
+dod_dod5015.property.dod_imageSource.title=Beeldbron
+dod_dod5015.property.dod_imageSource.description=Beeldbron
+dod_dod5015.property.dod_compression.title=Compressie
+dod_dod5015.property.dod_compression.description=Compressie
+dod_dod5015.property.dod_iccIcmProfile.title=ICC/ICM-profiel
+dod_dod5015.property.dod_iccIcmProfile.description=ICC/ICM-profiel
+dod_dod5015.property.dod_exifInformation.title=EXIF-informatie
+dod_dod5015.property.dod_exifInformation.description=EXIF-informatie
+
+dod_dod5015.aspect.dod_webRecord.title=Web-record
+dod_dod5015.aspect.dod_webRecord.description=Web-record
+dod_dod5015.property.dod_webFileName.title=Web-bestandsnaam
+dod_dod5015.property.dod_webFileName.description=Web-bestandsnaam
+dod_dod5015.property.dod_webPlatform.title=Web-platform
+dod_dod5015.property.dod_webPlatform.description=Web-platform
+dod_dod5015.property.dod_webSiteName.title=Websitenaam
+dod_dod5015.property.dod_webSiteName.description=Websitenaam
+dod_dod5015.property.dod_webSiteURL.title=Website-URL
+dod_dod5015.property.dod_webSiteURL.description=Website-URL
+dod_dod5015.property.dod_captureMethod.title=Methode vastleggen
+dod_dod5015.property.dod_captureMethod.description=Methode vastleggen
+dod_dod5015.property.dod_captureDate.title=Vastlegdatum
+dod_dod5015.property.dod_captureDate.description=Vastlegdatum
+dod_dod5015.property.dod_contact.title=Contact
+dod_dod5015.property.dod_contact.description=Contact
+dod_dod5015.property.dod_contentManagementSystem.title=Content Management System
+dod_dod5015.property.dod_contentManagementSystem.description=Content Management System
+
diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/dod5015/dod5015_nl.properties b/rm-server/config/alfresco/module/org_alfresco_module_rm/dod5015/dod5015_nl.properties
new file mode 100755
index 0000000000..e53442818d
--- /dev/null
+++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/dod5015/dod5015_nl.properties
@@ -0,0 +1,8 @@
+# Classified Records Capabilities
+capability.group.classifiedRecords.title=Niet geclassificeerde records
+capability.UpdateClassificationDates.title=Classificatiedata bijwerken
+capability.CreateModifyDestroyClassificationGuides.title=Classificatiegidsen Cre\u00ebren Aanpassen Vernietigen
+capability.UpgradeDowngradeAndDeclassifyRecords.title=Records upgraden downgraden en declassificeren
+capability.UpdateExemptionCategories.title=Uitzonderingscategori\u00ebn bijwerken
+capability.MapClassificationGuideMetadata.title=Metadata classificatiegids toewijzen
+capability.CreateModifyDestroyTimeframes.title=Tijdsperiodes Cre\u00ebren Aanpassen Vernietigen
\ No newline at end of file
diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/messages/action-service_nl.properties b/rm-server/config/alfresco/module/org_alfresco_module_rm/messages/action-service_nl.properties
new file mode 100755
index 0000000000..8f41ec37fe
--- /dev/null
+++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/messages/action-service_nl.properties
@@ -0,0 +1,38 @@
+rm.action.not-defined=De record management actie {0} is niet gedefinieerd.
+rm.action.no-implicit-noderef=De record management actie{0} kon niet worden uitgevoerd, omdat de implementatie van de actie geen impliciete nodeRef geeft.
+rm.action.record-not-declared=De archiveringsactie {0} kon niet worden uitgevoerd, omdat het record niet afgerond is. (actionedUponNodeRef={1})
+rm.action.expected-record-level=De archiveringsactie {0} kon niet worden uitgevoerd, omdat dit geen record is. (actionedUponNodeRef={1})
+rm.action.not-all-records-declared=De archiveringsactie {0} kon niet worden uitgevoerd, omdat niet alle records in de archiefmap afgerond zijn. (actionedUponNodeRef={1})
+rm.action.not-eligible=De archiveringsactie {0} kon niet worden uitgevoerd, omdat de volgende archiveringsactie voor het record of de archiefmap niet in aanmerking komt. (actionedUponNodeRef={1})
+rm.action.no-disposition-instructions=De archiveringsactie {0} kon niet worden uitgevoerd, omdat er geen bewaar- en vernietigingsinstructies zijn gevonden. (nodeRef={1})
+rm.action.no-disposition-lisfecycle-set=De archiveringsactie {0} kon niet worden uitgevoerd, omdat er geen archiveringscyclys is ingesteld. (nodeRef={1})
+rm.action.next-disp-not-set=De archiveringsactie {0} kon niet worden uitgevoerd, omdat de volgende archiveringsactie niet is ingesteld. (nodeRef={1})
+rm.action.not-next-disp=De archiveringsactie {0} kon niet worden uitgevoerd, omdat dit niet de volgende archiveringsactie voor dit record of deze archiefmap is. (nodeRef={1})
+rm.action.not-record-folder=De archiveringsactie {0} kon niet worden uitgevoerd, omdat dit geen archiefmap is. (nodeRef={1})
+rm.action.actioned-upon-not-record=De actie {0} kan niet worden uitgevoerd, omdat dit geen record is. (filePlanComponet={1})
+rm.action.custom-aspect-not-recognised=De aangepaste type kan niet worden toegepast omdat het niet wordt herkend. (customAspect={0})
+rm.action.close-record-folder-not-folder=De archiefmap kan niet worden gesloten omdat hij niet als een archiefmap is gedefinieerd.(nodeRef={0})
+rm.action.event-no-disp-lc=De gebeurtenis {0} kan niet worden voltooid, omdat hij niet in de archiveringslevenscyclus is gedefinieerd.
+rm.action.undeclared-only-records=Er kunnen alleen records worden voltooid. (nodeRef={0})
+rm.action.no-declare-mand-prop=Het record kan niet worden voltooid, omdat niet alle verplichte recordeigenschappen zijn ingesteld.
+rm.action.ghosted-prop-update=De contenteigenschappen van een record dat eerder is vernietigd, kunnen niet worden bijgewerkt.
+rm.action.valid-date-disp-asof=De begindatum van de archiveringsactie moet een geldige datum zijn.
+rm.action.disp-asof-lifecycle-applied=De begindatum van de archivering van een record of archiefmap waarvoor een levenscyclus is toegepast, kan niet worden bewerkt.
+rm.action.hold-edit-reason-none=De reden van wachtstand kan niet worden bewerkt, omdat er geen reden is opgegeven.
+rm.action.hold-edit-type=De reden van wachtstand kan niet worden bewerkt, omdat de gebruikte node niet van het juiste type is {0}. (nodeRef={1})
+rm.action.specify-avlid-date=De begindatum van de beoordeling moet een geldige datum zijn.
+rm.action.review-details-only=Alleen de beoordelingsgegevens van vitale records kunnen worden bewerkt.
+rm.action.freeze-no-reason=Een record kan niet zonder reden worden bevroren.
+rm.action.freeze-only-records-folders=Alleen records of archiefmappen kunnen worden bevroren.
+rm.action.no-open-record-folder=De archiefmap kan niet worden geopend omdat hij niet als een archiefmap is gedefinieerd. (actionedUponNodeRef={0})
+rm.action.not-hold-type=De wachtstand kon niet worden afgewezen, omdat de node niet van het juiste type is {0}. (actionedUponNodeRef={1})
+rm.action.no-read-mime-message=Het MIME-bericht kon niet worden gelezen, omdat {0}.
+rm.action.email-declared=De e-mail kan niet worden opgesplitst, omdat het record is afgerond. (actionedUponNodeRef={0})
+rm.action.email-not-record=De e-mail kan niet worden opgesplitst, omdat de node geen record is. (actionedUponNodeRef={0})
+rm.action.email-create-child-assoc=Kon geen aangepaste onderliggende koppeling cre\u00ebren.
+rm.action.node-already-transfer=De node wordt al overgedragen.
+rm.action.node-not-transfer=De node is geen overdrachtsobject.
+rm.action.undo-not-last=Afsluiten kan niet ongedaan worden gemaakt, omdat de laatste archiveringsactie niet was afgesloten.
+rm.action.records_only_undeclared=Er kunnen alleen records worden voltooid.
+rm.action.event-not-undone=De gebeurtenis {0} kan niet ongedaan worden gemaakt, omdat hij niet in de archiveringslevenscyclus is gedefinieerd.
+rm.action.actioned-upon-has-aspect=De node {0} heeft al het aspect {1}.
\ No newline at end of file
diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/messages/actions_nl.properties b/rm-server/config/alfresco/module/org_alfresco_module_rm/messages/actions_nl.properties
new file mode 100755
index 0000000000..b8de815c59
--- /dev/null
+++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/messages/actions_nl.properties
@@ -0,0 +1,172 @@
+#
+# i18n for Records Management Action Conditions
+#
+# Are classified
+isClassified.title=Geclassificeerd op bewaarschema
+isClassified.description=Zijn de records of archiefmappen geclassificeerd op een bewaarschema?
+
+# Are cutoff
+isCutoff.title=Afsluiten
+isCutoff.description=Records of archiefmappen zijn afgesloten.
+
+# Are declared
+isDeclared.title=Record afgerond
+isDeclared.description=Is het record afgerond?
+
+# Are frozen
+isFrozen.title=Bevroren
+isFrozen.description=Is het record of de archiefmap bevroren?
+
+# Are filed
+isRecordFiled.title=Record gearchiveerd
+isRecordFiled.description=Is het record gearchiveerd.
+
+# Are closed record folders
+isRecordFolderClosed.title=Archiefmap gesloten.
+isRecordFolderClosed.description=Is de archiefmap gesloten.
+
+# Are vital
+isVital.title=Vitaal record
+isVital.description=Is het record of de archiefmap vitaal.
+
+# Have Disposition Action
+hasDispositionAction.title=Heeft archiveringsactie
+hasDispositionAction.description=Hebben de nodes de opgegeven gekoppelde archiveringsactie op de opgegeven relatieve positie.
+
+# Are kind
+isKind.title=Type artikel Record Management
+isKind.description=Zijn de nodes van een type onderdeel selectielijst?
+isKind.kind.display-label=Type
+
+# Are Record Type
+isRecordType.title=Heeft recordtype
+isRecordType.description=Zijn de records van het opgegeven type?
+
+
+#
+# i18n for Records Management Actions
+#
+# Declare As Record
+create-record.title=Verklaren als record
+create-record.description=Verklaart document als een record.
+create-record.file-plan.display-label=Selectielijst
+create-record.hide-record.display-label=Record verbergen
+# Complete record
+declareRecord.title=Record afronden
+declareRecord.description=Hiermee wordt een record afgerond.
+# Reopens record
+undeclareRecord.title=Record heropenen
+undeclareRecord.description=Hiermee wordt een record heropend.
+# Open record folder
+openRecordFolder.title=Archiefmap openen
+openRecordFolder.description=Hiermee wordt een archiefmap geopend.
+# Close record folder
+closeRecordFolder.title=Archiefmap afsluiten
+closeRecordFolder.description=Hiermee wordt een archiefmap afgesloten.
+# Complete event
+completeEvent.title=Gebeurtenis afronden
+completeEvent.description=Hiermee wordt een gebeurtenis afgerond.
+completeEvent.eventName.display-label=Gebeurtenis
+# Freeze
+freeze.title=Bevriezen
+freeze.description=Hiermee wordt een record bevroren.
+freeze.reason.display-label=Reden
+# Unfreeze
+unfreeze.title=Bevriezing opheffen
+unfreeze.description=Hiermee wordt de bevriezing van een record opgeheven.
+# File to
+fileTo.title=Archiveren in
+fileTo.description=Hiermee wordt een record opgeslagen in de opgegeven archiefmap.
+fileTo.path.display-label=Pad naar archiefmap
+fileTo.createRecordFolder.display-label=Archiefmap cre\u00ebren
+# Reject
+reject.title=Afwijzen
+reject.description=Hiermee wordt een record afgewezen en wordt het document naar de originele locatie verplaatst.
+reject.reason.display-label=Reden voor afwijzing
+# Request Information
+requestInfo.title=Informatie aanvragen
+requestInfo.description=Hiermee wordt een workflow gestart voor het aanvragen van meer informatie voor een record.
+# Execute script
+executeScript.title=Script uitvoeren
+executeScript.description=Hiermee wordt een script uitgevoerd.
+executeScript.script-ref.display-label=Script
+# Send Email
+sendEmail.title=E-mail verzenden
+sendEmail.description=Verzend een e-mail.
+# Set Property
+setPropertyValue.title=Eigenschapswaarde instellen
+setPropertyValue.description=Stel een eigenschapswaarde in.
+
+# Edit Hold Reason
+editHoldReason.title=Reden van wachtstand bewerken
+editHoldReason.description=Reden van wachtstand bewerken
+# Relinquish Hold
+relinquishHold.title=Wachtstand afwijzen
+relinquishHold.description=Wachtstand afwijzen
+# Edit Review As Of Date
+editReviewAsOfDate.title=Begindatum beoordeling bijwerken
+editReviewAsOfDate.description=Begindatum beoordeling bijwerken
+# Edit Disposition Action As Of Date
+editDispositionActionAsOfDate.title=Begindatum archiveringsactie bewerken
+editDispositionActionAsOfDate.description=Begindatum archiveringsactie bewerken
+# Broadcast Vital Record Definition
+broadcastVitalRecordDefinition.title=Definitie vitaal record uitzenden
+broadcastVitalRecordDefinition.description=Definitie vitaal record uitzenden
+# Broadcast Disposition Action Definition Update
+broadcastDispositionActionDefinitionUpdate.title=Update van definitie archiveringsactie uitzenden
+broadcastDispositionActionDefinitionUpdate.description=Update van definitie archiveringsactie uitzenden
+# Undo Event
+undoEvent.title=Gebeurtenis ongedaan maken
+undoEvent.description=Gebeurtenis ongedaan maken
+# Transfer Complete
+transferComplete.title=Overdracht voltooid
+transferComplete.description=Overdracht voltooid
+# Accession Complete
+accessionComplete.title=Overdracht voltooid
+accessionComplete.description=Overdracht voltooid
+# Split Email
+splitEmail.title=E-mail opsplitsen
+splitEmail.description=E-mail opsplitsen
+# Create Disposition Schedule
+createDispositionSchedule.title=Bewaarschema cre\u00ebren
+createDispositionSchedule.description=Bewaarschema cre\u00ebren
+# File Destruction Report
+fileDestructionReport.title=Vernietingingsrapport archiveren
+fileDestructionReport.description=Vernietingingsrapport archiveren
+# Cut off
+cutoff.title=Afsluiten
+cutoff.description=Afsluiten
+# Destroy
+destroy.title=Vernietigen
+destroy.description=Vernietigen
+# Reviewed
+reviewed.title=Gereviseerd
+reviewed.description=Gereviseerd
+# Hide Record
+hide-record.title=Record verbergen
+hide-record.description=Record verbergen
+# Transfer
+transfer.title=Overbrengen
+transfer.description=Overbrengen
+# Uncut off
+unCutoff.title=Afsluiten ongedaan maken
+unCutoff.description=Afsluiten ongedaan maken
+# Accession
+accession.title=Overdracht
+accession.description=Overdracht
+# Retain
+retain.title=Behouden
+retain.description=Behouden
+# Add Record Types
+addRecordTypes.title=Recordtypes toevoegen
+addRecordTypes.description=Hiermee worden de geselecteerde types aan het record toegevoegd.
+
+
+# Action parameter constraints
+rm-ac-is-kind-kinds.record_category=Recordcategorie
+rm-ac-is-kind-kinds.record_folder=Archiefmap
+rm-ac-is-kind-kinds.record=Record
+
+rm-ac-disposition-action-relative-positions.next=Volgende
+rm-ac-disposition-action-relative-positions.previous=Terug
+rm-ac-disposition-action-relative-positions.any=Willekeurig
\ No newline at end of file
diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/messages/admin-service_nl.properties b/rm-server/config/alfresco/module/org_alfresco_module_rm/messages/admin-service_nl.properties
new file mode 100755
index 0000000000..b8ffea7568
--- /dev/null
+++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/messages/admin-service_nl.properties
@@ -0,0 +1,21 @@
+rm.admin.service-not-init=De aanpassingsservice is niet gestart.
+rm.admin.not-customisable=De klasse {0} kan niet worden aangepast.
+rm.admin.invalid-custom-aspect=Het aangepaste aspect {0} voor aanpasbare klasse {1} kan niet worden gevonden.
+rm.admin.property-already-exists=Eigenschap {0} bestaat al.
+rm.admin.cannot-apply-constraint=Kan beperking {0} niet toepassen op eigenschap {1} met datatype {2}. (expected: dataType = TEXT)
+rm.admin.prop-exist=De nieuwe eigenschap {0} kan niet worden gevonden.
+rm.admin.custom-prop-exist=Het aangepaste model bevat de eigenschap {0} niet.
+rm.admin.unknown-aspect=Onbekend aspect {0}.
+rm.admin.ref-exist=De aangepaste referentie {0} kan niet worden gevonden.
+rm.admin.ref-label-in-use=Het referentielabel {0} is al in gebruik.
+rm.admin.assoc-exists=De koppeling {0} bestaat al.
+rm.admin.child-assoc-exists=De onderliggende koppeling {0} bestaat al.
+rm.admin.cannot-find-assoc-def=De koppelingsdefinitie {0} kan niet worden gevonden.
+rm.admin.constraint-exists=De beperking {0} bestaat al.
+rm.admin.contraint-cannot-find=De definitie voor beperking {0} kan niet worden gevonden.
+rm.admin.unexpected_type_constraint=Onverwacht type {0} voor beperking {1}. Het verwachte type is {2}.
+rm.admin.custom-model-not-found=Het aangepaste model {0} kan niet worden gevonden.
+rm.admin.custom-model-no-content=Het aangepaste model heeft geen content. (nodeRef={0})
+rm.admin.error-write-custom-model=Fout bij schrijven van aangepaste modelcontent. (nodeRef={0}).
+rm.admin.error-client-id=Fout bij genereren van client-id, omdat deze al in gebruik is. (clientid={0})
+rm.admin.error-split-id=Kan id {0} niet opsplitsen, omdat separator {1} niet aanwezig is.
\ No newline at end of file
diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/messages/audit-service_nl.properties b/rm-server/config/alfresco/module/org_alfresco_module_rm/messages/audit-service_nl.properties
new file mode 100755
index 0000000000..083da617c1
--- /dev/null
+++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/messages/audit-service_nl.properties
@@ -0,0 +1,16 @@
+rm.audit.updated-metadata=Bijgewerkte metadata
+rm.audit.created-object=Gecre\u00eberd object
+rm.audit.delte-object=Object verwijderen
+rm.audit.login-succeeded=Aanmelden gelukt
+rm.audit.login-failed=Aanmelden mislukt
+rm.audit.create-person=Persoon aanmaken
+rm.audit.link=Koppelen
+rm.audit.move=Verplaatsen
+rm.audit.copy=Kopi\u00ebren
+rm.audit.file=Bestand
+rm.audit.audit-start=Audit starten
+rm.audit.audit-stop=Audit stoppen
+rm.audit.audit-clear=Audit wissen
+rm.audit.audit-view=Audit bekijken
+rm.audit.trail-file-fail=Kan geen auditrapport cre\u00ebren.
+rm.audit.audit-report=Auditrapport
\ No newline at end of file
diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/messages/capability-service_nl.properties b/rm-server/config/alfresco/module/org_alfresco_module_rm/messages/capability-service_nl.properties
new file mode 100755
index 0000000000..5d37deaa65
--- /dev/null
+++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/messages/capability-service_nl.properties
@@ -0,0 +1,96 @@
+# Records
+capability.group.records.title=Records
+capability.DeclareRecords.title=Records afsluiten
+capability.ViewRecords.title=Records bekijken
+capability.UndeclareRecords.title=Records heropenen
+capability.CreateRecords.title=Records cre\u00ebren
+capability.RequestRecordInformation.title=Recordgegevens opvragen
+capability.RejectRecords.title=Records afwijzen
+capability.FileUnfiledRecords.title=Niet gearchiveerde records archiveren
+capability.LinkToRecords.title=Records koppelen
+
+# Metadata Control
+capability.group.metadataControl.title=Metadatabeheer
+capability.EditRecordMetadata.title=Record Metadata bewerken
+capability.EditDeclaredRecordMetadata.title=Voltooide Record Metadata bewerken
+capability.EditNonRecordMetadata.title=Non-Record Metadata bewerken
+capability.MoveRecords.title=Records verplaatsen
+
+# Folder Control
+capability.group.folderControl.title=Mapbeheer
+capability.CreateModifyDestroyFolders.title=Mappen cre\u00ebren aanpassen vernietigen
+capability.CloseFolders.title=Mappen sluiten
+capability.ReOpenFolders.title=Mappen heropenen
+capability.DeclareRecordsInClosedFolders.title=Records in gesloten mappen afronden
+
+# Vital Records
+capability.group.vitalRecords.title=Vitale records
+capability.UpdateVitalRecordCycleInformation.title=Cyclusgegevens van vitaal record bijwerken
+capability.CycleVitalRecords.title=Cyclus vitale records
+capability.PlanningReviewCycles.title=Planning beoordelingscycli
+
+# References and Links
+capability.group.references.title=Verwijzingen
+capability.ChangeOrDeleteReferences.title=Verwijzingen veranderen of verwijderen
+capability.DeleteLinks.title=Koppelingen verwijderen
+
+# Events
+capability.group.events.title=Gebeurtenissen
+capability.CreateModifyDestroyEvents.title=Gebeurtenissen cre\u00ebren aanpassen vernietigen
+capability.AddModifyEventDates.title=Gebeurtenisdata toevoegen veranderen
+
+# Cutoff
+capability.group.cutoff.title=Afsluiten
+capability.ApproveRecordsScheduledForCutoff.title=Records goedkeuren die zijn ingepland voor afsluiten
+capability.CreateModifyRecordsInCutoffFolders.title=Records in afsluitmappen cre\u00ebren veranderen
+
+# Disposition and Transfers
+capability.group.dispositionAndTransfers.title=Archivering en overdracht
+capability.UpdateTriggerDates.title=Triggerdata bijwerken
+capability.ManuallyChangeDispositionDates.title=Archiveringsdata handmatig veranderen
+capability.AuthorizeNominatedTransfers.title=Genomineerde overdrachten autoriseren
+capability.AuthorizeAllTransfers.title=Alle overdrachten autoriseren
+capability.DestroyRecordsScheduledForDestruction.title=Records vernietigen die zijn ingepland voor vernietiging
+capability.DestroyRecords.title=Records vernietigen
+capability.DeleteRecords.title=Records verwijderen
+capability.TriggerAnEvent.title=Een gebeurtenis triggeren
+
+# Hold Controls
+capability.group.holdControls.title=Opties voor wachtstand
+capability.ExtendRetentionPeriodOrFreeze.title=Retentieperiode of bevriezen verlengen
+capability.Unfreeze.title=Bevriezen opheffen
+capability.ViewUpdateReasonsForFreeze.title=Redenen voor bevriezen bekijken bijwerken
+
+# Audit
+capability.group.audit.title=Audit
+capability.DeclareAuditAsRecord.title=Geschiedenis bijhouden als record verklaren
+capability.EnableDisableAuditByTypes.title=Geschiedenis per type inschakelen uitschakelen
+capability.DeleteAudit.title=Geschiedenis verwijderen
+capability.SelectAuditMetadata.title=Geschiedenis Metadata selecteren
+capability.AccessAudit.title=Geschiedenis openen
+capability.ExportAudit.title=Geschiedenis exporteren
+
+# Security
+capability.group.security.title=Beveiliging
+capability.CreateModifyDestroyRoles.title=Rollen cre\u00ebren aanpassen vernietigen
+capability.CreateModifyDestroyUsersAndGroups.title=Gebruikers en groepen cre\u00ebren aanpassen vernietigen
+capability.PasswordControl.title=Wachtwoordopties
+capability.DisplayRightsReport.title=Rechtenrapport weergeven
+capability.ManageAccessControls.title=Toegangsopties beheren
+capability.ManageAccessRights.title=Toegangsrechten beheren
+
+# Configuration
+capability.group.config.title=Configuratie
+capability.CreateModifyDestroyFileplanMetadata.title=Metadata selectielijst cre\u00ebren aanpassen vernietigen
+capability.CreateModifyDestroyFileplanTypes.title=Selectielijsttypes cre\u00ebren aanpassen vernietigen
+capability.CreateModifyDestroyRecordTypes.title=Recordtypes cre\u00ebren aanpassen vernietigen
+capability.CreateAndAssociateSelectionLists.title=Selectielijsten cre\u00ebren en toewijzen
+capability.EditSelectionLists.title=Selectielijsten bewerken
+capability.CreateModifyDestroyReferenceTypes.title=Verwijzingstypes cre\u00ebren aanpassen vernietigen
+capability.AttachRulesToMetadataProperties.title=Regelen aan Metadata-eigenschappen bevestigen
+capability.MakeOptionalParametersMandatory.title=Optionele parameters verplicht maken
+capability.MapEmailMetadata.title=Metadata e-mail toewijzen
+
+# Rules
+capability.group.rules.title=Regels
+capability.ManageRules.title=Regels beheren
\ No newline at end of file
diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/messages/dataset-service_nl.properties b/rm-server/config/alfresco/module/org_alfresco_module_rm/messages/dataset-service_nl.properties
new file mode 100755
index 0000000000..0f492a3e41
--- /dev/null
+++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/messages/dataset-service_nl.properties
@@ -0,0 +1 @@
+dataset.dod5015.label=DOD 5015 voorbeeldgegevens
\ No newline at end of file
diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/messages/notification-service_nl.properties b/rm-server/config/alfresco/module/org_alfresco_module_rm/messages/notification-service_nl.properties
new file mode 100755
index 0000000000..6b4aa46e34
--- /dev/null
+++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/messages/notification-service_nl.properties
@@ -0,0 +1,3 @@
+notification.dueforreview.subject=Melding Records gereed voor beoordeling
+notification.superseded.subject=Melding Record vervangen
+notification.rejected.subject=Melding Record geweigerd
\ No newline at end of file
diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/messages/records-management-service_nl.properties b/rm-server/config/alfresco/module/org_alfresco_module_rm/messages/records-management-service_nl.properties
new file mode 100755
index 0000000000..b60ae5d1b2
--- /dev/null
+++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/messages/records-management-service_nl.properties
@@ -0,0 +1,17 @@
+rm.service.error-add-content-container=Content kan niet aan een recordcontainer worden toegevoegd. Gebruik archiefmappen voor archiveren van content.
+rm.service.update-disposition-action-def=De definitie van de archiveringsactie kan niet worden bijgewerkt, omdat er een update wordt gepubliceerd.
+rm.service.set-id=De waarde voor de identifiereigenschap van het object {0} is alleen-lezen en kan dus niet worden ingesteld.
+rm.service.path-node=Kan pad niet ophalen. (nodeRef={0})
+rm.service.invalid-rm-node=Ongeldig node voor record management, omdat aspect {0} niet aanwezig is.
+rm.service.no-root=Kan record management oorsprong niet vinden.
+rm.service.dup-root=Kan geen record management oorsprong cre\u00ebren, omdat er al een bestaat in deze hi\u00ebrarchie.
+rm.service.root-type=Kan de record management oorsprong niet cre\u00ebren, omdat type {0} geen subtype is van rm:recordsManagementRootContainer.
+rm.service.container-parent-type=Kan record management container niet cre\u00ebren, omdat de bovenliggende geen subtype was van rm:recordsManagement (parentType={0})
+rm.service.container-type=Kan de record management container niet cre\u00ebren, omdat type {0} geen subtype is van rm:recordsManagementContainer.
+rm.service.container-expected=Nodeverwijzing naar een rm:recordsManagementContainer node verwacht.
+rm.service.record-folder-expected=Nodeverwijzing naar een rm:recordFolder node verwacht.
+rm.service.parent-record-folder-root=Kan geen archiefmap cre\u00ebren, omdat de bovenliggende map een record management oorsprong is.
+rm.service.parent-record-folder-type=Kan geen archiefmap cre\u00ebren, omdat de bovenliggende geen subtype was van Record Management:recordsManagementContainer. (parentType={0})
+rm.service.record-folder-type=Kan geen archiefmap cre\u00ebren, omdat het geleverde type geen subtype is van Record Management:recordFolder. (type={0})
+rm.service.not-record=De node {0} is geen record.
+rm.service.vital-def-missing=Definitie-aspect Vitaal Record is niet aanwezig op node. (nodeRef={0})
\ No newline at end of file
diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/messages/records-model_nl.properties b/rm-server/config/alfresco/module/org_alfresco_module_rm/messages/records-model_nl.properties
new file mode 100755
index 0000000000..3e778300cc
--- /dev/null
+++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/messages/records-model_nl.properties
@@ -0,0 +1,281 @@
+rma_recordsmanagement.description=Contentmodel Record Management
+
+rma_recordsmanagement.type.rma_rmsite.title=Record Management locatie
+rma_recordsmanagement.type.rma_rmsite.description=Gespecialiseerde locatie voor Record Management
+
+rma_recordsmanagement.type.rma_caveatConfig.title=Caveat Config
+rma_recordsmanagement.type.rma_caveatConfig.decription=Caveat Config
+
+rma_recordsmanagement.type.rma_emailConfig.title=E-mailconfiguratie
+rma_recordsmanagement.type.rma_emailConfig.decription=E-mailconfiguratie
+
+rma_recordsmanagement.type.rma_recordsManagementContainer.title=Record Management Container
+rma_recordsmanagement.type.rma_recordsManagementContainer.decription=Record Management Container
+
+rma_recordsmanagement.type.rma_recordsManagementRootContainer.title=Record Management oorsprong Container
+rma_recordsmanagement.type.rma_recordsManagementRootContainer.decription=Record Management oorsprong Container
+
+rma_recordsmanagement.type.rma_dispositionSchedule.title=Bewaarschema
+rma_recordsmanagement.type.rma_dispositionSchedule.decription=Bewaarschema
+
+rma_recordsmanagement.property.rma_dispositionAuthority.title=Archiefautoriteit
+rma_recordsmanagement.property.rma_dispositionAuthority.decription=Archiefautoriteit
+
+rma_recordsmanagement.property.rma_dispositionInstructions.title=Bewaar- en vernietigingsinstructies
+rma_recordsmanagement.property.rma_dispositionInstructions.decription=Bewaar- en vernietigingsinstructies
+
+rma_recordsmanagement.property.rma_recordLevelDisposition.title=Archivering recordniveau
+rma_recordsmanagement.property.rma_recordLevelDisposition.decription=Archivering recordniveau
+
+rma_recordsmanagement.association.rma_dispositionActionDefinitions.title=Archiveringsacties
+rma_recordsmanagement.association.rma_dispositionActionDefinitions.decription=Archiveringsacties
+
+rma_recordsmanagement.type.rma_dispositionActionDefinition.title=Definitie archiveringsactie
+rma_recordsmanagement.type.rma_dispositionActionDefinition.decription=Definitie archiveringsactie
+rma_recordsmanagement.property.rma_dispositionActionName.title=Naam archiveringsactie
+rma_recordsmanagement.property.rma_dispositionActionName.decription=Naam archiveringsactie
+rma_recordsmanagement.property.rma_dispositionDescription.title=Beschrijving archivering
+rma_recordsmanagement.property.rma_dispositionDescription.decription=Beschrijving archivering
+rma_recordsmanagement.property.rma_dispositionLocation.title=Archiveringslocatie
+rma_recordsmanagement.property.rma_dispositionLocation.decription=Archiveringslocatie
+rma_recordsmanagement.property.rma_dispositionPeriod.title=Bewaar- en vernietigingstermijn
+rma_recordsmanagement.property.rma_dispositionPeriod.decription=Bewaar- en vernietigingstermijn
+rma_recordsmanagement.property.rma_dispositionPeriodProperty.title=Eigenschap Bewaar- en vernietigingstermijn
+rma_recordsmanagement.property.rma_dispositionPeriodProperty.decription=Eigenschap Bewaar- en vernietigingstermijn
+rma_recordsmanagement.property.rma_dispositionEvent.title=Archiveringsgebeurtenis
+rma_recordsmanagement.property.rma_dispositionEvent.decription=Archiveringsgebeurtenis
+rma_recordsmanagement.property.rma_dispositionEventCombination.title=Combinatie archiveringsgebeurtenis
+rma_recordsmanagement.property.rma_dispositionEventCombination.decription=Combinatie archiveringsgebeurtenis
+
+rma_recordsmanagement.type.rma_recordFolder.title=Archiefmap
+rma_recordsmanagement.type.rma_recordFolder.decription=Archiefmap
+rma_recordsmanagement.property.rma_isClosed.title=Record
+rma_recordsmanagement.property.rma_isClosed.decription=Record
+
+rma_recordsmanagement.type.rma_recordCategory.title=Recordcategorie
+rma_recordsmanagement.type.rma_recordCategory.decription=Recordcategorie
+
+rma_recordsmanagement.type.rma_nonElectronicDocument.title=Niet-elektronisch document
+rma_recordsmanagement.type.rma_nonElectronicDocument.decription=Niet-elektronisch document
+rma_recordsmanagement.property.rma_physicalSize.title=Fysieke grootte
+rma_recordsmanagement.property.rma_physicalSize.decription=De grootte van het document gemeten in lineaire meters.
+rma_recordsmanagement.property.rma_numberOfCopies.title=Aantal exemplaren
+rma_recordsmanagement.property.rma_numberOfCopies.description=Het aantal exemplaren van het document.
+rma_recordsmanagement.property.rma_storageLocation.title=Opslaglocatie
+rma_recordsmanagement.property.rma_storageLocation.decription=De fysieke opslaglocatie van het record.
+rma_recordsmanagement.property.rma_shelf.title=Plank
+rma_recordsmanagement.property.rma_shelf.decription=De plank waarop het record wordt bewaard.
+rma_recordsmanagement.property.rma_box.title=Doos
+rma_recordsmanagement.property.rma_box.description=De doos waarin het record wordt bewaard.
+rma_recordsmanagement.property.rma_file.title=Bestand
+rma_recordsmanagement.property.rma_file.decription=Het bestand waarin het record wordt bewaard.
+
+rma_recordsmanagement.type.rma_dispositionAction.title=Archiveringsactie
+rma_recordsmanagement.type.rma_dispositionAction.decription=Archiveringsactie
+rma_recordsmanagement.property.rma_dispositionActionId.title=Id archiveringsactie
+rma_recordsmanagement.property.rma_dispositionActionId.decription=Id archiveringsactie
+rma_recordsmanagement.property.rma_dispositionAction.title=Archiveringsactie
+rma_recordsmanagement.property.rma_dispositionAction.decription=Archiveringsactie
+rma_recordsmanagement.property.rma_dispositionAsOf.title=Archiveringsactie
+rma_recordsmanagement.property.rma_dispositionAsOf.decription=Archiveringsactie
+rma_recordsmanagement.property.rma_dispositionEventsEligible.title=In aanmerking komende archiveringsacties
+rma_recordsmanagement.property.rma_dispositionEventsEligible.decription=In aanmerking komende archiveringsacties
+rma_recordsmanagement.property.rma_dispositionActionStartedAt.title=Archiveringsactie gestart op
+rma_recordsmanagement.property.rma_dispositionActionStartedAt.decription=Archiveringsactie gestart op
+rma_recordsmanagement.property.rma_dispositionActionStartedBy.title=Archiveringsactie gestart door
+rma_recordsmanagement.property.rma_dispositionActionStartedBy.decription=Archiveringsactie gestart door
+rma_recordsmanagement.property.rma_dispositionActionCompletedAt.title=Archiveringsactie afgerond op
+rma_recordsmanagement.property.rma_dispositionActionCompletedAt.decription=Archiveringsactie afgerond op
+rma_recordsmanagement.property.rma_dispositionActionCompletedBy.title=Archiveringsactie afgerond door
+rma_recordsmanagement.property.rma_dispositionActionCompletedBy.decription=Archiveringsactie afgerond door
+rma_recordsmanagement.association.rma_eventExecutions.title=Event uitvoeringen
+rma_recordsmanagement.association.rma_eventExecutions.decription=Event uitvoeringen
+
+rma_recordsmanagement.type.rma_eventExecution.title=Event uitvoering
+rma_recordsmanagement.type.rma_eventExecution.decription=Event uitvoering
+rma_recordsmanagement.property.rma_eventExecutionName.title=Gebeurtenisnaam
+rma_recordsmanagement.property.rma_eventExecutionName.decription=Gebeurtenisnaam
+rma_recordsmanagement.property.rma_eventExecutionAutomatic.title=Gebeurtenis automatisch
+rma_recordsmanagement.property.rma_eventExecutionAutomatic.decription=Gebeurtenis automatisch
+rma_recordsmanagement.property.rma_eventExecutionComplete.title=Gebeurtenis afgerond
+rma_recordsmanagement.property.rma_eventExecutionComplete.decription=Gebeurtenis afgerond
+rma_recordsmanagement.property.rma_eventExecutionCompletedBy.title=Gebeurtenis afgerond door
+rma_recordsmanagement.property.rma_eventExecutionCompletedBy.decription=Gebeurtenis afgerond door
+rma_recordsmanagement.property.rma_eventExecutionCompletedAt.title=Gebeurtenis afgerond op
+rma_recordsmanagement.property.rma_eventExecutionCompletedAt.decription=Gebeurtenis afgerond op
+
+rma_recordsmanagement.type.rma_hold.title=Wachtstand
+rma_recordsmanagement.type.rma_hold.decription=Wachtstand
+rma_recordsmanagement.property.rma_holdReason.title=Reden van wachtstand
+rma_recordsmanagement.property.rma_holdReason.decription=Reden van wachtstand
+rma_recordsmanagement.association.rma_frozenRecords.title=Bevroren records
+rma_recordsmanagement.association.rma_frozenRecords.decription=Bevroren records
+
+rma_recordsmanagement.type.rma_transfer.title=Overzetten
+rma_recordsmanagement.type.rma_transfer.decription=Overzetten
+rma_recordsmanagement.property.rma_transferAccessionIndicator.title=Indicator voor overzettingsoverdracht
+rma_recordsmanagement.property.rma_transferAccessionIndicator.decription=Indicator voor overzettingsoverdracht
+rma_recordsmanagement.property.rma_transferPDFIndicator.title=Indicator PDF overzetten
+rma_recordsmanagement.property.rma_transferPDFIndicator.decription=Indicator PDF overzetten
+rma_recordsmanagement.property.rma_transferLocation.title=PDF overzetten
+rma_recordsmanagement.property.rma_transferLocation.decription=PDF overzetten
+rma_recordsmanagement.association.rma_transferred.title=Overgezet
+rma_recordsmanagement.association.rma_transferred.decription=Overgezet
+
+rma_recordsmanagement.aspect.rma_filePlanComponent.title=Onderdeel selectielijst
+rma_recordsmanagement.aspect.rma_filePlanComponent.decription=Onderdeel selectielijst
+rma_recordsmanagement.property.rma_rootNodeRef.title=Oorsprongnode
+rma_recordsmanagement.property.rma_rootNodeRef.decription=Oorsprongnode
+
+rma_recordsmanagement.aspect.rma_recordsManagementRoot.title=Record Management oorsprong
+rma_recordsmanagement.aspect.rma_recordsManagementRoot.decription=Record Management oorsprong
+rma_recordsmanagement.association.rma_holds.title=Wachtstanden
+rma_recordsmanagement.association.rma_holds.decription=Wachtstanden
+rma_recordsmanagement.association.rma_transfers.title=Overzettingen
+rma_recordsmanagement.association.rma_transfers.decription=Overzettingen
+
+rma_recordsmanagement.aspect.rma_declaredRecord.title=Afgerond record
+rma_recordsmanagement.aspect.rma_declaredRecord.decription=Afgerond record
+rma_recordsmanagement.property.rma_declaredAt.title=Datum voltooid
+rma_recordsmanagement.property.rma_declaredAt.decription=Datum voltooid
+rma_recordsmanagement.property.rma_declaredBy.title=Voltooid door
+rma_recordsmanagement.property.rma_declaredBy.decription=Voltooid door
+
+rma_recordsmanagement.aspect.rma_recordComponentIdentifier.title=Identificatie recordonderdeel
+rma_recordsmanagement.aspect.rma_recordComponentIdentifier.decription=Identificatie recordonderdeel
+rma_recordsmanagement.property.rma_identifier.title=Identificatie
+rma_recordsmanagement.property.rma_identifier.decription=Unieke Record-identificatie
+rma_recordsmanagement.property.rma_dbUniquenessId.title=Uniekheid database
+rma_recordsmanagement.property.rma_dbUniquenessId.decription=Uniekheid database
+
+rma_recordsmanagement.aspect.rma_vitalRecordDefinition.title=Definitie Vitaal Record
+rma_recordsmanagement.aspect.rma_vitalRecordDefinition.decription=Definitie Vitaal Record
+
+rma_recordsmanagement.property.rma_reviewPeriod.title=Beoordelingsperiode
+rma_recordsmanagement.property.rma_reviewPeriod.decription=Beoordelingsperiode
+rma_recordsmanagement.property.rma_vitalRecordIndicator.title=Vitaal Record indicator
+rma_recordsmanagement.property.rma_vitalRecordIndicator.decription=Vitaal Record indicator
+
+rma_recordsmanagement.aspect.rma_record.title=Record
+rma_recordsmanagement.aspect.rma_record.decription=Record
+rma_recordsmanagement.property.rma_dateFiled.title=Datum opgeslagen
+rma_recordsmanagement.property.rma_dateFiled.decription=Datum opgeslagen
+rma_recordsmanagement.property.rma_publicationDate.title=Publicatiedatum
+rma_recordsmanagement.property.rma_publicationDate.decription=Publicatiedatum
+rma_recordsmanagement.property.rma_originator.title=Herkomst
+rma_recordsmanagement.property.rma_originator.decription=Herkomst
+rma_recordsmanagement.property.rma_originatingOrganization.title=Oorspronkelijke organisatie
+rma_recordsmanagement.property.rma_originatingOrganization.decription=Oorspronkelijke organisatie
+rma_recordsmanagement.property.rma_mediaType.title=Type media
+rma_recordsmanagement.property.rma_mediaType.decription=Type media
+rma_recordsmanagement.property.rma_format.title=Indeling
+rma_recordsmanagement.property.rma_format.decription=Indeling
+rma_recordsmanagement.property.rma_dateReceived.title=Datum ontvangen
+rma_recordsmanagement.property.rma_dateReceived.decription=Datum ontvangen
+rma_recordsmanagement.property.rma_address.title=Geadresseerde
+rma_recordsmanagement.property.rma_address.decription=Geadresseerde
+rma_recordsmanagement.property.rma_otherAddress.title=Andere geadresseerde
+rma_recordsmanagement.property.rma_otherAddress.decription=Andere geadresseerde
+rma_recordsmanagement.property.rma_origionalName=Oorspronkelijke naam
+
+rma_recordsmanagement.aspect.rma_recordMetaData.title=Metadata record
+rma_recordsmanagement.aspect.rma_recordMetaData.description=Markeraspect voor metadata van record
+
+rma_recordsmanagement.aspect.rma_commonRecordDetails.title=Algemene recordgegevens
+rma_recordsmanagement.aspect.rma_commonRecordDetails.description=Algemene metadata voor alle recordtypes
+rma_recordsmanagement.property.rma_location.title=Locatie
+rma_recordsmanagement.property.rma_location.decription=Locatie
+
+rma_recordsmanagement.aspect.rma_vitalRecord.title=Vitaal Record
+rma_recordsmanagement.aspect.rma_vitalRecord.decription=Vitaal Record
+rma_recordsmanagement.property.rma_reviewAsOf.title=Volgende beoordeling
+rma_recordsmanagement.property.rma_reviewAsOf.decription=Volgende beoordeling
+rma_recordsmanagement.property.rma_notificationIssued.title=Geeft aan dat er een melding gereed voor beoordeling is afgegeven voor dit record
+rma_recordsmanagement.property.rma_notificationIssued.decription=Geeft aan dat er een melding gereed voor beoordeling is afgegeven voor dit record
+
+rma_recordsmanagement.aspect.rma_scheduled.title=Ingepland
+rma_recordsmanagement.aspect.rma_scheduled.decription=Ingepland
+rma_recordsmanagement.association.rma_dispositionSchedule.title=Bewaarschema
+rma_recordsmanagement.association.rma_dispositionSchedule.decription=Bewaarschema
+
+rma_recordsmanagement.aspect.rma_dispositionLifecycle.title=Archiveringslevenscyclus
+rma_recordsmanagement.aspect.rma_dispositionLifecycle.decription=Archiveringslevenscyclus
+rma_recordsmanagement.association.rma_nextDispositionAction.title=Volgende archiveringsactie
+rma_recordsmanagement.association.rma_nextDispositionAction.decription=Volgende archiveringsactie
+rma_recordsmanagement.association.rma_dispositionActionHistory.title=Geschiedenis archiveringsactie
+rma_recordsmanagement.association.rma_dispositionActionHistory.decription=Geschiedenis archiveringsactie
+
+rma_recordsmanagement.aspect.rma_cutOff.title=Afsluiten
+rma_recordsmanagement.aspect.rma_cutOff.decription=Afsluiten
+rma_recordsmanagement.property.rma_cutOffDate.title=Datum voor afsluiten
+rma_recordsmanagement.property.rma_cutOffDate.decription=Datum voor afsluiten
+
+rma_recordsmanagement.aspect.rma_transferred.title=Overgezet
+rma_recordsmanagement.aspect.rma_transferred.decription=Overgezet
+
+rma_recordsmanagement.aspect.rma_ascended.title=Opgelopen
+rma_recordsmanagement.aspect.rma_ascended.decription=Opgelopen
+
+rma_recordsmanagement.aspect.rma_frozen.title=Bevroren
+rma_recordsmanagement.aspect.rma_frozen.decription=Bevroren
+rma_recordsmanagement.property.rma_frozenAt.title=Bevroren op
+rma_recordsmanagement.property.rma_frozenAt.decription=Bevroren op
+rma_recordsmanagement.property.rma_frozenBy.title=Bevroren door
+rma_recordsmanagement.property.rma_frozenBy.decription=Bevroren door
+
+rma_recordsmanagement.aspect.rma_caveatConfigRoot.title=Oorsprong Caveat Configuratie
+rma_recordsmanagement.aspect.rma_caveatConfigRoot.decription=Oorsprong Caveat Configuratie
+rma_recordsmanagement.association.rma_caveatConfigAssoc.title=Caveat Configuratie
+rma_recordsmanagement.association.rma_caveatConfigAssoc.description=Caveat Configuratie
+
+rma_recordsmanagement.aspect.rma_emailConfigRoot.title=Oorsprong e-mailconfig
+rma_recordsmanagement.aspect.rma_emailConfigRoot.decription=Oorsprong e-mailconfig
+rma_recordsmanagement.association.rma_emailConfigAssoc.title=E-mailconfiguratie
+rma_recordsmanagement.association.rma_emailConfigAssoc.description=E-mailconfiguratie
+
+rma_recordsmanagement.aspect.rma_recordSearch.title=Record zoeken
+rma_recordsmanagement.aspect.rma_recordSearch.decription=Toegevoegde zoekinformatie ter ondersteuning van Record Management zoekopdracht
+rma_recordsmanagement.property.rma_recordSearchHasDispositionSchedule.title=Heeft bewaarschema
+rma_recordsmanagement.property.rma_recordSearchHasDispositionSchedule.description=Geeft aan of er een bewaarschema aan het item is gekoppeld
+rma_recordsmanagement.property.rma_recordSearchDispositionActionName.title=Naam archiveringsactie
+rma_recordsmanagement.property.rma_recordSearchDispositionActionName.description=De naam van de volgende archiveringsactie
+rma_recordsmanagement.property.rma_recordSearchDispositionActionAsOf.title=Archiveringsactie van
+rma_recordsmanagement.property.rma_recordSearchDispositionActionAsOf.description=De datum waarop de volgende archiveringsactie in aanmerking komt
+rma_recordsmanagement.property.rma_recordSearchDispositionPeriod.title=Bewaar- en vernietigingstermijn
+rma_recordsmanagement.property.rma_recordSearchDispositionPeriod.description=Bewaar- en vernietigingstermijn
+rma_recordsmanagement.property.rma_recordSearchDispositionPeriodExpression.title=Uitdrukking van bewaar- en vernietigingstermijn
+rma_recordsmanagement.property.rma_recordSearchDispositionPeriodExpression.description=Uitdrukking van bewaar- en vernietigingstermijn
+rma_recordsmanagement.property.rma_recordSearchDispositionEventsEligible.title=In aanmerking komende archiveringsacties
+rma_recordsmanagement.property.rma_recordSearchDispositionEventsEligible.description=In aanmerking komende archiveringsacties
+rma_recordsmanagement.property.rma_recordSearchDispositionEvents.title=Archiveringsgebeurtenissen
+rma_recordsmanagement.property.rma_recordSearchDispositionEvents.description=Archiveringsgebeurtenissen
+rma_recordsmanagement.property.rma_recordSearchDispositionAuthority.title=Archiefautoriteit
+rma_recordsmanagement.property.rma_recordSearchDispositionAuthority.description=Archiefautoriteit
+rma_recordsmanagement.property.rma_recordSearchDispositionInstructions.title=Bewaar- en vernietigingsinstructies
+rma_recordsmanagement.property.rma_recordSearchDispositionInstructions.description=Bewaar- en vernietigingsinstructies
+rma_recordsmanagement.property.rma_recordSearchHoldReason.title=Reden van wachtstand
+rma_recordsmanagement.property.rma_recordSearchHoldReason.description=Reden van wachtstand
+rma_recordsmanagement.property.rma_recordSearchVitalRecordReviewPeriod.title=Beoordelingsperiode Vitaal Record
+rma_recordsmanagement.property.rma_recordSearchVitalRecordReviewPeriod.description=Beoordelingsperiode Vitaal Record
+rma_recordsmanagement.property.rma_recordSearchVitalRecordReviewPeriodExpression.title=Uitdrukking van beoordelingsperiode
+rma_recordsmanagement.property.rma_recordSearchVitalRecordReviewPeriodExpression.description=Uitdrukking van beoordelingsperiode
+
+rma_recordsmanagement.aspect.rma_versionedRecord.title=Record met versiebeheer
+rma_recordsmanagement.aspect.rma_versionedRecord.decription=Record met versiebeheer
+
+rma_recordsmanagement.aspect.rma_unpublishedUpdate.title=Ongepubliceerde update
+rma_recordsmanagement.aspect.rma_unpublishedUpdate.decription=Ongepubliceerde update
+rma_recordsmanagement.property.rma_unpublishedUpdate.title=Ongepubliceerde update
+rma_recordsmanagement.property.rma_unpublishedUpdate.description=Geeft aan of er een ongepubliceerde update is
+rma_recordsmanagement.property.rma_updateTo.title=Bijwerken naar
+rma_recordsmanagement.property.rma_updateTo.description=Bestemming van de update
+rma_recordsmanagement.property.rma_updatedProperties.title=Bijgewerkte eigenschappen
+rma_recordsmanagement.property.rma_updatedProperties.description=De bijgewerkte eigenschappen
+rma_recordsmanagement.property.rma_publishInProgress.title=Wordt gepubliceerd
+rma_recordsmanagement.property.rma_publishInProgress.description=Geeft aan of er momenteel een publicatie wordt uitgevoerd
+
+rma_recordsmanagement.aspect.dod_ghosted.title=Gedupliceerd record
+rma_recordsmanagement.aspect.dod_ghosted.description=Gedupliceerd record
+
+listconstraint.rmc_tlList.title=Overdrachtslocaties
+listconstraint.rmc_smList.title=Aanvullende markeringen
\ No newline at end of file
diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/messages/report-model_nl.properties b/rm-server/config/alfresco/module/org_alfresco_module_rm/messages/report-model_nl.properties
new file mode 100755
index 0000000000..36802a76bf
--- /dev/null
+++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/messages/report-model_nl.properties
@@ -0,0 +1,7 @@
+rmr_recordsmanagementreport.description=Contentmodel Record Management rapport
+
+rmr_recordsmanagementreport.type.rmr_report.title=Record Management rapport
+rmr_recordsmanagementreport.type.rmr_report.description=Record Management rapport.
+
+rmr_recordsmanagementreport.type.rmr_destructionReport.title=Record Management rapport
+rmr_recordsmanagementreport.type.rmr_destructionReport.description=Record Management vernietigingsrapport.
\ No newline at end of file
diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/messages/report-service_nl.properties b/rm-server/config/alfresco/module/org_alfresco_module_rm/messages/report-service_nl.properties
new file mode 100755
index 0000000000..4b8da92623
--- /dev/null
+++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/messages/report-service_nl.properties
@@ -0,0 +1,2 @@
+report.rmr_destructionReport.name=Vernietingsrapport (${node.rma:identifier} ${node.cm:name}).html
+
diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/messages/rm-actions_nl.properties b/rm-server/config/alfresco/module/org_alfresco_module_rm/messages/rm-actions_nl.properties
new file mode 100755
index 0000000000..df8ea5abe0
--- /dev/null
+++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/messages/rm-actions_nl.properties
@@ -0,0 +1,8 @@
+# Disposition Actions
+cutoff.title=Afsluiten
+cutoff.description=Afsluiten
+retain.title=Behouden
+retain.description=Behouden
+destroy.title=Vernietigen
+destroy.description=Vernietigen
+
diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/messages/rm-events_nl.properties b/rm-server/config/alfresco/module/org_alfresco_module_rm/messages/rm-events_nl.properties
new file mode 100755
index 0000000000..42d7ff6cb6
--- /dev/null
+++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/messages/rm-events_nl.properties
@@ -0,0 +1,20 @@
+# Event Types
+rmeventservice.rmEventType.simple=Eenvoudige gebeurtenis
+rmeventservice.rmEventType.obsolete=Verouderde gebeurtenis
+rmeventservice.rmEventType.superseded=Vervangen gebeurtenis
+rmeventservice.rmEventType.crossReferencedRecordTransfered=Record met kruisverwijziging overgezet
+
+# Default events
+rmevent.case_closed=Case gesloten
+rmevent.abolished=Vervallen
+rmevent.re_designated=Opnieuw aangewezen
+rmevent.no_longer_needed=Niet langer nodig
+rmevent.superseded=Vervangen
+rmevent.study_complete=Onderzoek afgerond
+rmevent.training_complete=Training afgerond
+rmevent.related_record_trasfered_inactive_storage=Gerelateerd record overgezet naar inactieve opslag
+rmevent.obsolete=Verouderd
+rmevent.all_allowances_granted_are_terminated=Alle toegekende rechten zijn be\u00ebindigd
+rmevent.WGI_action_complete=WGI-actie afgerond
+rmevent.separation=Scheiding
+rmevent.case_complete=Case afgerond
\ No newline at end of file
diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/messages/rm-system_nl.properties b/rm-server/config/alfresco/module/org_alfresco_module_rm/messages/rm-system_nl.properties
new file mode 100755
index 0000000000..725db34da4
--- /dev/null
+++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/messages/rm-system_nl.properties
@@ -0,0 +1,28 @@
+bootstrap.rmadmin.firstName=Record Management
+bootstrap.rmadmin.lastName=Systeembeheerder
+
+rm.hold.name=Wachtstand
+
+## Defaut roles
+rm.role.extendedReaders=Ge\u00efntegreerde lezers
+rm.role.extendedWriters=Ge\u00efntegreerde schrijvers
+rm.role.user=Record Management gebruiker
+rm.role.powerUser=Record Management hoofdgebruiker
+rm.role.securityOfficer=Record Management veiligheidsbeambte
+rm.role.recordsManager=Record Management archiefverantwoordelijke
+rm.role.administrator=Record Management beheerder
+rm.role.all=Alle Record Management rollen
+
+## Default searches
+rm.savedsearch.vitalRecordsName=Vitale Records gereed voor beoordeling
+rm.savedsearch.vitalRecordsDesc=Alle records die momenteel gereed zijn voor beoordeling.
+rm.savedsearch.incompleteRecordsName=Niet afgeronde records
+rm.savedsearch.incompleteRecordsDesc=Alle niet afgeronde records.
+rm.savedsearch.cutoffRecordsName=Records die in aanmerking komen voor afsluiten
+rm.savedsearch.cutoffRecordsDesc=Alle records die momenteel in aanmerking komen voor afsluiten.
+rm.savedsearch.transferRecordsName=Records die in aanmerking komen voor overzetten
+rm.savedsearch.transferRecordsDesc=Alle records die momenteel in aanmerking komen voor overzetten.
+rm.savedsearch.destructionRecordsName=Records die in aanmerking komen voor vernietiging
+rm.savedsearch.destructionRecordsDesc=Alle records die momenteel in aanmerking komen voor vernietiging.
+rm.savedsearch.frozenRecordsName=Bevroren records
+rm.savedsearch.frozenRecordsDesc=Alle bevroren records.
\ No newline at end of file
diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-public-services-security-context.xml b/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-public-services-security-context.xml
index d64a6a7835..4937890e4e 100644
--- a/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-public-services-security-context.xml
+++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-public-services-security-context.xml
@@ -47,7 +47,6 @@
-
diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-service-context.xml b/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-service-context.xml
index 2a92236494..320e3f4783 100644
--- a/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-service-context.xml
+++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-service-context.xml
@@ -1332,10 +1332,10 @@
diff --git a/rm-server/config/alfresco/templates/webscripts/org/alfresco/rma/admin/rmconstraint/rmconstraint.put_nl.properties b/rm-server/config/alfresco/templates/webscripts/org/alfresco/rma/admin/rmconstraint/rmconstraint.put_nl.properties
new file mode 100755
index 0000000000..230459d91a
--- /dev/null
+++ b/rm-server/config/alfresco/templates/webscripts/org/alfresco/rma/admin/rmconstraint/rmconstraint.put_nl.properties
@@ -0,0 +1 @@
+rm.admin.list-already-exists=Er bestaat al een lijst met de naam ''{0}''.
\ No newline at end of file
diff --git a/rm-server/config/alfresco/templates/webscripts/org/alfresco/rma/admin/rmconstraint/rmconstraints.post_nl.properties b/rm-server/config/alfresco/templates/webscripts/org/alfresco/rma/admin/rmconstraint/rmconstraints.post_nl.properties
new file mode 100755
index 0000000000..230459d91a
--- /dev/null
+++ b/rm-server/config/alfresco/templates/webscripts/org/alfresco/rma/admin/rmconstraint/rmconstraints.post_nl.properties
@@ -0,0 +1 @@
+rm.admin.list-already-exists=Er bestaat al een lijst met de naam ''{0}''.
\ No newline at end of file
diff --git a/rm-server/config/alfresco/workflow/rm-workflow-messages_nl.properties b/rm-server/config/alfresco/workflow/rm-workflow-messages_nl.properties
new file mode 100755
index 0000000000..f8fda3cd95
--- /dev/null
+++ b/rm-server/config/alfresco/workflow/rm-workflow-messages_nl.properties
@@ -0,0 +1,5 @@
+activitiReviewPooled.workflow.info.requested=Informatie aangevraagd voor record
+activitiReviewPooled.workflow.info.provided=Informatie aangeleverd voor record
+activitiReviewPooled.workflow.email.subject=Informatie aangeleverd voor het record
+activitiReviewPooled.workflow.email.body1=De gebruiker
+activitiReviewPooled.workflow.email.body2=heeft de aangevraagde informatie voor het record aangeleverd.
diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/RMAfterInvocationProvider.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/RMAfterInvocationProvider.java
index 04912286be..918428b764 100644
--- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/RMAfterInvocationProvider.java
+++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/RMAfterInvocationProvider.java
@@ -951,24 +951,32 @@ public class RMAfterInvocationProvider extends RMSecurityCommon
@SuppressWarnings({"unchecked", "rawtypes" })
private Map decide(Authentication authentication, Object object, ConfigAttributeDefinition config, Map returnedObject) throws AccessDeniedException
{
- if (returnedObject.containsKey(RecordsManagementModel.PROP_HOLD_REASON))
- {
- HashMap filtered = new HashMap();
- filtered.putAll(returnedObject);
- // get the node ref from the properties or delete
- String protocol = DefaultTypeConverter.INSTANCE.convert(String.class, filtered.get(ContentModel.PROP_STORE_PROTOCOL));
- String identifier = DefaultTypeConverter.INSTANCE.convert(String.class, filtered.get(ContentModel.PROP_STORE_IDENTIFIER));
- String uuid = DefaultTypeConverter.INSTANCE.convert(String.class, filtered.get(ContentModel.PROP_NODE_UUID));
- StoreRef storeRef = new StoreRef(protocol, identifier);
- NodeRef nodeRef = new NodeRef(storeRef, uuid);
- if ((nodeRef == null) || (permissionService.hasPermission(filePlanService.getFilePlan(nodeRef), RMPermissionModel.VIEW_UPDATE_REASONS_FOR_FREEZE) != AccessStatus.ALLOWED))
+ try {
+ if (returnedObject.containsKey(RecordsManagementModel.PROP_HOLD_REASON))
{
- filtered.remove(RecordsManagementModel.PROP_HOLD_REASON);
+ HashMap filtered = new HashMap();
+ filtered.putAll(returnedObject);
+ // get the node ref from the properties or delete
+ String protocol = DefaultTypeConverter.INSTANCE.convert(String.class, filtered.get(ContentModel.PROP_STORE_PROTOCOL));
+ String identifier = DefaultTypeConverter.INSTANCE.convert(String.class, filtered.get(ContentModel.PROP_STORE_IDENTIFIER));
+ String uuid = DefaultTypeConverter.INSTANCE.convert(String.class, filtered.get(ContentModel.PROP_NODE_UUID));
+ StoreRef storeRef = new StoreRef(protocol, identifier);
+ NodeRef nodeRef = new NodeRef(storeRef, uuid);
+ if ((nodeRef == null) ||
+ (permissionService.hasPermission(getFilePlanService().getFilePlan(nodeRef), RMPermissionModel.VIEW_UPDATE_REASONS_FOR_FREEZE) != AccessStatus.ALLOWED))
+ {
+ filtered.remove(RecordsManagementModel.PROP_HOLD_REASON);
+ }
+ return filtered;
+ }
+ else
+ {
+ return returnedObject;
}
- return filtered;
}
- else
+ catch(ClassCastException ex)
{
+ // This will happen if returnedObject is an instance of TreeMap containing anything other than instances of QName
return returnedObject;
}
}
diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/RMEntryVoter.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/RMEntryVoter.java
index b311e6a877..85698ef443 100644
--- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/RMEntryVoter.java
+++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/RMEntryVoter.java
@@ -59,7 +59,7 @@ public class RMEntryVoter extends RMSecurityCommon
/** Policy map */
private HashMap policies = new HashMap();
-
+
/**
* @param capabilityService capability service
*/
diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/RMSecurityCommon.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/RMSecurityCommon.java
index a09d665b82..3cf137ef7c 100644
--- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/RMSecurityCommon.java
+++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/RMSecurityCommon.java
@@ -20,7 +20,6 @@ package org.alfresco.module.org_alfresco_module_rm.capability;
import net.sf.acegisecurity.vote.AccessDecisionVoter;
-import org.alfresco.error.AlfrescoRuntimeException;
import org.alfresco.module.org_alfresco_module_rm.caveat.RMCaveatConfigComponent;
import org.alfresco.module.org_alfresco_module_rm.fileplan.FilePlanService;
import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel;
@@ -36,6 +35,9 @@ import org.alfresco.service.cmr.security.PermissionService;
import org.aopalliance.intercept.MethodInvocation;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.springframework.beans.BeansException;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.ApplicationContextAware;
/**
@@ -46,7 +48,7 @@ import org.apache.commons.logging.LogFactory;
* @author Roy Wetherall
* @since 2.0
*/
-public class RMSecurityCommon
+public class RMSecurityCommon implements ApplicationContextAware
{
/** No set value */
protected int NOSET_VALUE = -100;
@@ -58,8 +60,20 @@ public class RMSecurityCommon
protected NodeService nodeService; //This is the internal NodeService -- no permission checks
protected PermissionService permissionService;
protected RMCaveatConfigComponent caveatConfigComponent;
- protected FilePlanService filePlanService;
+ private FilePlanService filePlanService;
+ /** Application context */
+ protected ApplicationContext applicationContext;
+
+ /**
+ * @see org.springframework.context.ApplicationContextAware#setApplicationContext(org.springframework.context.ApplicationContext)
+ */
+ @Override
+ public void setApplicationContext(ApplicationContext applicationContext) throws BeansException
+ {
+ this.applicationContext = applicationContext;
+ }
+
/**
* @param nodeService node service
*/
@@ -85,12 +99,16 @@ public class RMSecurityCommon
}
/**
- * @param filePlanService file plan service
+ * @return FilePlanService file plan service
*/
- public void setFilePlanService(FilePlanService filePlanService)
+ protected FilePlanService getFilePlanService()
{
- this.filePlanService = filePlanService;
- }
+ if (filePlanService == null)
+ {
+ filePlanService = (FilePlanService)applicationContext.getBean("filePlanService");
+ }
+ return filePlanService;
+ }
/**
* Sets a value into the transaction cache
@@ -195,17 +213,8 @@ public class RMSecurityCommon
}
// Get the file plan for the node
- NodeRef filePlan = filePlanService.getFilePlan(nodeRef);
+ NodeRef filePlan = getFilePlanService().getFilePlan(nodeRef);
- // Admin role
- //if (permissionService.hasPermission(filePlan, RMPermissionModel.ROLE_ADMINISTRATOR) == AccessStatus.ALLOWED)
- //{
- // if (logger.isDebugEnabled())
- // {
- // logger.debug("\t\tAdmin user, access granted. (nodeRef=" + nodeRef.toString() + ", user=" + AuthenticationUtil.getRunAsUser() + ")");
- // }
- // return setTransactionCache("checkRmRead", nodeRef, AccessDecisionVoter.ACCESS_GRANTED);
- // }
if (permissionService.hasPermission(nodeRef, RMPermissionModel.READ_RECORDS) == AccessStatus.DENIED)
{
@@ -242,16 +251,11 @@ public class RMSecurityCommon
NodeRef testNodeRef = null;
if (position < 0)
{
- testNodeRef = filePlanService.getFilePlanBySiteId(FilePlanService.DEFAULT_RM_SITE_ID);
- if (testNodeRef == null)
- {
- throw new AlfrescoRuntimeException("Unable to find default file plan node.");
- }
-
if (logger.isDebugEnabled())
{
- logger.debug("\tPermission test against the file plan node " + nodeService.getPath(testNodeRef));
+ logger.debug("\tNothing to test permission against.");
}
+ testNodeRef = null;
}
else if (StoreRef.class.isAssignableFrom(params[position]))
{
diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/declarative/DeclarativeCapability.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/declarative/DeclarativeCapability.java
index cfb35470e2..8e94ff86f9 100644
--- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/declarative/DeclarativeCapability.java
+++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/declarative/DeclarativeCapability.java
@@ -33,24 +33,17 @@ import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.security.AccessStatus;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.springframework.beans.BeansException;
-import org.springframework.context.ApplicationContext;
-import org.springframework.context.ApplicationContextAware;
/**
* Declarative capability implementation.
*
* @author Roy Wetherall
*/
-public class DeclarativeCapability extends AbstractCapability
- implements ApplicationContextAware
+public class DeclarativeCapability extends AbstractCapability
{
/** Logger */
protected static Log logger = LogFactory.getLog(DeclarativeCapability.class);
- /** Application Context */
- protected ApplicationContext applicationContext;
-
/** Required permissions */
protected List permissions;
@@ -66,12 +59,6 @@ public class DeclarativeCapability extends AbstractCapability
/** Indicates whether to return an undetermined result */
protected boolean isUndetermined = false;
- @Override
- public void setApplicationContext(ApplicationContext applicationContext) throws BeansException
- {
- this.applicationContext = applicationContext;
- }
-
/**
* @param permissions permissions
*/
@@ -170,7 +157,7 @@ public class DeclarativeCapability extends AbstractCapability
protected boolean checkPermissionsImpl(NodeRef nodeRef, String ... permissions)
{
boolean result = true;
- NodeRef filePlan = filePlanService.getFilePlan(nodeRef);
+ NodeRef filePlan = getFilePlanService().getFilePlan(nodeRef);
for (String permission : permissions)
{
@@ -261,7 +248,7 @@ public class DeclarativeCapability extends AbstractCapability
{
boolean result = false;
- FilePlanComponentKind actualKind = filePlanService.getFilePlanComponentKind(nodeRef);
+ FilePlanComponentKind actualKind = getFilePlanService().getFilePlanComponentKind(nodeRef);
if (actualKind != null)
{
@@ -298,7 +285,7 @@ public class DeclarativeCapability extends AbstractCapability
int result = AccessDecisionVoter.ACCESS_ABSTAIN;
// Check we are dealing with a file plan component
- if (filePlanService.isFilePlanComponent(nodeRef) == true)
+ if (getFilePlanService().isFilePlanComponent(nodeRef) == true)
{
// Check the kind of the object, the permissions and the conditions
if (checkKinds(nodeRef) == true && checkPermissions(nodeRef) == true && checkConditions(nodeRef) == true)
diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/declarative/DeclarativeCompositeCapability.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/declarative/DeclarativeCompositeCapability.java
index 081f0200fc..4ceaac1025 100644
--- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/declarative/DeclarativeCompositeCapability.java
+++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/declarative/DeclarativeCompositeCapability.java
@@ -103,8 +103,8 @@ public class DeclarativeCompositeCapability extends DeclarativeCapability
int result = AccessDecisionVoter.ACCESS_ABSTAIN;
// Check we are dealing with a file plan component
- if (filePlanService.isFilePlanComponent(source) == true &&
- filePlanService.isFilePlanComponent(target) == true)
+ if (getFilePlanService().isFilePlanComponent(source) == true &&
+ getFilePlanService().isFilePlanComponent(target) == true)
{
// Check the kind of the object, the permissions and the conditions
if (checkKinds(source) == true && checkPermissions(source) == true && checkConditions(source) == true)
diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/impl/ChangeOrDeleteReferencesCapability.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/impl/ChangeOrDeleteReferencesCapability.java
index d06a552ba1..f66af073e8 100644
--- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/impl/ChangeOrDeleteReferencesCapability.java
+++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/impl/ChangeOrDeleteReferencesCapability.java
@@ -45,11 +45,11 @@ public class ChangeOrDeleteReferencesCapability extends DeclarativeCapability
*/
public int evaluate(NodeRef source, NodeRef target)
{
- if (filePlanService.isFilePlanComponent(source))
+ if (getFilePlanService().isFilePlanComponent(source))
{
if (target != null)
{
- if (filePlanService.isFilePlanComponent(target) == true)
+ if (getFilePlanService().isFilePlanComponent(target) == true)
{
if (checkConditions(source) == true && checkConditions(target) == true)
{
diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/impl/CreateCapability.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/impl/CreateCapability.java
index 98e05c8e31..9dd60df9fd 100644
--- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/impl/CreateCapability.java
+++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/impl/CreateCapability.java
@@ -39,19 +39,28 @@ import org.alfresco.service.namespace.QName;
*/
public class CreateCapability extends DeclarativeCapability
{
+ /** record service */
private RecordService recordService;
+
+ /** record folder service */
private RecordFolderService recordFolderService;
-
+
+ /**
+ * @param recordService record service
+ */
public void setRecordService(RecordService recordService)
{
this.recordService = recordService;
}
+ /**
+ * @param recordFolderService record folder service
+ */
public void setRecordFolderService(RecordFolderService recordFolderService)
{
this.recordFolderService = recordFolderService;
}
-
+
/**
* @see org.alfresco.module.org_alfresco_module_rm.capability.Capability#evaluate(org.alfresco.service.cmr.repository.NodeRef)
*/
@@ -62,6 +71,7 @@ public class CreateCapability extends DeclarativeCapability
}
/**
+ * Evaluate capability.
*
* @param destination
* @param linkee
@@ -79,7 +89,7 @@ public class CreateCapability extends DeclarativeCapability
return AccessDecisionVoter.ACCESS_DENIED;
}
}
- if (filePlanService.isFilePlanComponent(destination))
+ if (getFilePlanService().isFilePlanComponent(destination))
{
if ((assocType == null) || assocType.equals(ContentModel.ASSOC_CONTAINS) == false)
{
@@ -129,7 +139,7 @@ public class CreateCapability extends DeclarativeCapability
{
if (recordFolderService.isRecordFolder(destination))
{
- if (permissionService.hasPermission(filePlanService.getFilePlan(destination), RMPermissionModel.DECLARE_RECORDS_IN_CLOSED_FOLDERS) == AccessStatus.ALLOWED)
+ if (permissionService.hasPermission(getFilePlanService().getFilePlan(destination), RMPermissionModel.DECLARE_RECORDS_IN_CLOSED_FOLDERS) == AccessStatus.ALLOWED)
{
return AccessDecisionVoter.ACCESS_GRANTED;
}
@@ -142,7 +152,7 @@ public class CreateCapability extends DeclarativeCapability
{
if (recordFolderService.isRecordFolder(destination))
{
- if (permissionService.hasPermission(filePlanService.getFilePlan(destination), RMPermissionModel.CREATE_MODIFY_RECORDS_IN_CUTOFF_FOLDERS) == AccessStatus.ALLOWED)
+ if (permissionService.hasPermission(getFilePlanService().getFilePlan(destination), RMPermissionModel.CREATE_MODIFY_RECORDS_IN_CUTOFF_FOLDERS) == AccessStatus.ALLOWED)
{
return AccessDecisionVoter.ACCESS_GRANTED;
}
diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/impl/DeleteLinksCapability.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/impl/DeleteLinksCapability.java
index d02a569a07..d6d6316d69 100644
--- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/impl/DeleteLinksCapability.java
+++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/impl/DeleteLinksCapability.java
@@ -45,8 +45,8 @@ public class DeleteLinksCapability extends DeclarativeCapability
*/
public int evaluate(NodeRef source, NodeRef target)
{
- if (filePlanService.isFilePlanComponent(source) == true &&
- filePlanService.isFilePlanComponent(target) == true)
+ if (getFilePlanService().isFilePlanComponent(source) == true &&
+ getFilePlanService().isFilePlanComponent(target) == true)
{
if (checkConditions(source) == true && checkConditions(target) == true)
{
diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/impl/ViewRecordsCapability.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/impl/ViewRecordsCapability.java
index 0b72487490..3fab7e42ac 100644
--- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/impl/ViewRecordsCapability.java
+++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/impl/ViewRecordsCapability.java
@@ -35,7 +35,7 @@ public final class ViewRecordsCapability extends DeclarativeCapability
{
if (nodeRef != null)
{
- if (filePlanService.isFilePlanComponent(nodeRef) == true)
+ if (getFilePlanService().isFilePlanComponent(nodeRef) == true)
{
return checkRmRead(nodeRef);
}
diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/policy/CapabilityPolicy.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/policy/CapabilityPolicy.java
index 6da51f9dcf..da3bf0b310 100644
--- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/policy/CapabilityPolicy.java
+++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/capability/policy/CapabilityPolicy.java
@@ -39,8 +39,8 @@ public class CapabilityPolicy extends AbstractBasePolicy
Class[] params,
ConfigAttributeDefinition cad)
{
- NodeRef assignee = getTestNode(invocation, params, cad.getParameters().get(0), cad.isParent());
- return capabilityService.getCapability(RMPermissionModel.MANAGE_ACCESS_CONTROLS).evaluate(assignee);
+ NodeRef testNodeRef = getTestNode(invocation, params, cad.getParameters().get(0), cad.isParent());
+ return capabilityService.getCapability(RMPermissionModel.MANAGE_ACCESS_CONTROLS).evaluate(testNodeRef);
}
}
\ No newline at end of file
diff --git a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/util/BaseRMTestCase.java b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/util/BaseRMTestCase.java
index bb6ae656da..9a31105ae8 100644
--- a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/util/BaseRMTestCase.java
+++ b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/util/BaseRMTestCase.java
@@ -102,9 +102,6 @@ public abstract class BaseRMTestCase extends RetryingTransactionHelperTestCase
protected QName ASPECT_CUSTOM_ASPECT = QName.createQName(URI, "customAspect");
protected QName ASPECT_RECORD_META_DATA = QName.createQName(URI, "recordMetaData");
- /** site id's */
- protected static final String COLLABORATION_SITE_ID = "collab-site-id";
-
/** Common test utils */
protected CommonRMTestUtils utils;
@@ -161,6 +158,7 @@ public abstract class BaseRMTestCase extends RetryingTransactionHelperTestCase
protected DispositionSchedule dispositionSchedule;
protected NodeRef rmFolder;
protected NodeRef unfiledContainer;
+ protected String collabSiteId;
/** multi-hierarchy test data
*
@@ -452,9 +450,9 @@ public abstract class BaseRMTestCase extends RetryingTransactionHelperTestCase
}
// delete the collaboration site (if required)
- if (isCollaborationSiteTest() == true && siteService.getSite(COLLABORATION_SITE_ID) != null)
+ if (isCollaborationSiteTest() == true && siteService.getSite(collabSiteId) != null)
{
- siteService.deleteSite(COLLABORATION_SITE_ID);
+ siteService.deleteSite(collabSiteId);
}
}
finally
@@ -739,9 +737,10 @@ public abstract class BaseRMTestCase extends RetryingTransactionHelperTestCase
protected void setupCollaborationSiteTestDataImpl()
{
// create collaboration site
- collaborationSite = siteService.createSite("preset", COLLABORATION_SITE_ID, "title", "description", SiteVisibility.PRIVATE);
+ collabSiteId = GUID.generate();
+ collaborationSite = siteService.createSite("preset", collabSiteId, "title", "description", SiteVisibility.PRIVATE);
documentLibrary = SiteServiceImpl.getSiteContainer(
- COLLABORATION_SITE_ID,
+ collabSiteId,
SiteService.DOCUMENT_LIBRARY,
true,
siteService,
@@ -756,11 +755,11 @@ public abstract class BaseRMTestCase extends RetryingTransactionHelperTestCase
dmConsumer = GUID.generate();
dmConsumerNodeRef = createPerson(dmConsumer);
- siteService.setMembership(COLLABORATION_SITE_ID, dmConsumer, SiteModel.SITE_CONSUMER);
+ siteService.setMembership(collabSiteId, dmConsumer, SiteModel.SITE_CONSUMER);
dmCollaborator = GUID.generate();
dmCollaboratorNodeRef = createPerson(dmCollaborator);
- siteService.setMembership(COLLABORATION_SITE_ID, dmCollaborator, SiteModel.SITE_COLLABORATOR);
+ siteService.setMembership(collabSiteId, dmCollaborator, SiteModel.SITE_COLLABORATOR);
}
/**
diff --git a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/util/BaseRMWebScriptTestCase.java b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/util/BaseRMWebScriptTestCase.java
index bbeb932ffe..d6cf86b172 100644
--- a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/util/BaseRMWebScriptTestCase.java
+++ b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/util/BaseRMWebScriptTestCase.java
@@ -72,9 +72,6 @@ import org.springframework.context.ApplicationContext;
*/
public class BaseRMWebScriptTestCase extends BaseWebScriptTest
{
- /** Collab site id */
- protected static final String COLLAB_SITE_ID = "myCollabSite";
-
/** Common test utils */
protected CommonRMTestUtils utils;
@@ -123,6 +120,7 @@ public class BaseRMWebScriptTestCase extends BaseWebScriptTest
protected DispositionSchedule dispositionSchedule;
protected NodeRef recordFolder;
protected NodeRef recordFolder2;
+ protected String collabSiteId;
/**
* Indicates whether the test collaboration site should be created
@@ -222,7 +220,7 @@ public class BaseRMWebScriptTestCase extends BaseWebScriptTest
// Delete the collaboration site (if required)
if (isCollaborationSiteTest() == true)
{
- siteService.deleteSite(COLLAB_SITE_ID);
+ siteService.deleteSite(collabSiteId);
}
}
@@ -328,9 +326,10 @@ public class BaseRMWebScriptTestCase extends BaseWebScriptTest
protected void setupCollaborationSiteTestDataImpl()
{
// create collaboration site
- siteService.createSite("preset", COLLAB_SITE_ID, "title", "description", SiteVisibility.PRIVATE);
+ collabSiteId = GUID.generate();
+ siteService.createSite("preset", collabSiteId, "title", "description", SiteVisibility.PRIVATE);
NodeRef documentLibrary = SiteServiceImpl.getSiteContainer(
- COLLAB_SITE_ID,
+ collabSiteId,
SiteService.DOCUMENT_LIBRARY,
true,
siteService,
diff --git a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/webscript/RmClassesRestApiTest.java b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/webscript/RmClassesRestApiTest.java
index f2d9816582..2587357c66 100644
--- a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/webscript/RmClassesRestApiTest.java
+++ b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/webscript/RmClassesRestApiTest.java
@@ -88,7 +88,7 @@ public class RmClassesRestApiTest extends BaseRMWebScriptTestCase
// Get the list of dm aspects and check them. It also contains rm related aspects.
// Format url and send request
- url = String.format(RM_ASPECTS_URL, "aspect", COLLAB_SITE_ID);
+ url = String.format(RM_ASPECTS_URL, "aspect", collabSiteId);
response = sendRequest(new GetRequest(url), Status.STATUS_OK);
// Check the content from the response
diff --git a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/webscript/RmPropertiesRestApiTest.java b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/webscript/RmPropertiesRestApiTest.java
index 00e041e835..b622fa79a8 100644
--- a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/webscript/RmPropertiesRestApiTest.java
+++ b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/webscript/RmPropertiesRestApiTest.java
@@ -88,7 +88,7 @@ public class RmPropertiesRestApiTest extends BaseRMWebScriptTestCase
// Get the list of dm types and check them. It also contains rm related types.
// Format url and send request
- url = String.format(RM_TYPES_URL, "type", COLLAB_SITE_ID);
+ url = String.format(RM_TYPES_URL, "type", collabSiteId);
response = sendRequest(new GetRequest(url), Status.STATUS_OK);
// Check the content from the response