==============================================================================
Merged to :
111287: Common utility classes developed as part of refactor for RM-2549.
asSet method that works like java.util.Arrays.asList.
Also variants of java.util.Arrays.asList that take Supplier<T> rather than T.
111292: This checkin provides the non-RM-specific parts of metadata delegation, which are required for the refactor of classified renditions needed for RM-2549.
111633: Massive renaming. Delegate/Delegation becomes Referrer, Referent and things *do* make a little more sense.
111643: This is the RM-specific parts of the refactor for classified renditions - see RM-2549.
111696: Addressing code review comments.
111703: Addressing code review comments
111707: Addressing review comments. Clearer use of lambdas due to default methods in java.util.Collection.
111768: Addition of tidyup code for when clf:classified aspect is removed. Also added notes on what's to do if this ever becomes a core service.
111772: Slight refactor. ReferredMetadataService uses the registry to look up Referrals rather than the AdminService. Seems neater.
111779: Addressing review comment - don't have assoc types in the service API - have aspect names instead.
I agree with this comment. I think assoc types are an implementation detail of this service.
111855: Applying code review comment. I added an 'mr' prefix to the spring beans, which we hope will make our lives easier if this Metadata Referral stuff ever makes it into core.
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/HEAD@111864 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This builds on the separate MetadataReferral services to link renditions to classified source nodes via a new classifiedRendition aspect which defines a new classifiedRendition assoc. The spring bean 'classifiedRenditionAssoc' defines that only the clf:classified aspect and its metadata will be linked.
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/BRANCHES/classified_renditions@111643 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
We essentially have two new services, MetadataDelegationService and MetadataDelegationAdminService, along with some spring configuration and content model configuration (this will come in the subsequent RM-specific checkin.)
metadata-delegation-context.xml defines the spring beans that form the Metadata Delegation services.
The DelegationAdminService is used to attach/detach nodes in pairs such that one node can ‘inherit’ some aspect metadata from another node - the ‘delegate’.
The Delegation class is the definition of a type of link - it’s defined by the aspects that it handles and the type of peer association that it uses to link pairs of nodes.
Delegations must be defined as spring beans in the system to be available for use and they are exposed to Java code via the DelegationRegistry class.
Note that chains of delegations (node A -> node B -> node C) are not supported. Any attempt to attach nodes in a way that would lead to a delegation chain is detected and prevented.
The DelegationService is not about the creation and destruction of links, but is about accessing the metadata on a delegate node.
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/BRANCHES/classified_renditions@111292 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
109931: Classification enforcement refactor
110013: Classification enforecment refactor
* rename veto as permission pre-processor
* add support for permission post-processors
* add transaction cache to classification enforcement
* add records management permission post processor to remove code from extended permission service
110191: Extended permission service unit test
110301: Classification permission pre-processor unit test
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/HEAD@110507 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This checkin adds behaviours for ensuring that classification aspect/properties are correclty copied between nodes and their renditions on the creation of new renditions, on the classification or reclassification of nodes with existing renditions.
To do this I needed what should be, in my opinion, a common Alfresco utility method - the ability to copy an aspect from one node to another (aspect meaning property group i.e. no assocs).
I've created that method and put it in CoreServicesExtras. It should really be moved to core.
+ review RM
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/HEAD@110069 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
Allow adding and removing classification levels, classification reasons and
exemption categories after the server has been started for the first time.
It is also possible to alter the display text associated with an existing
level, reason or category. All changes require a server restart.
+review RM
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/HEAD@109854 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
Added a new test case where an admin and an RM Manager (only cleared to secret) both try to reclassify a record.
Added a new group (GROUP_RM_MANAGER_FILE_CATEGORY_ONE) for an RM Manager who can file records as well as read.
Added some utility methods and fields.
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/HEAD@109524 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
Enable sorting by multiple fields and configure the security clearance page
to use first name, last name and then fall back to user name as a tie
breaker.
The rm-automation test fails for me locally, as the person search is case
sensitive. I'm pushing this anyway because Bamboo didn't protest at the
old sorting method (which also failed locally due to case sensitivity).
Remove "final" from UserQueryParams so it can be mocked.
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/HEAD@109169 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
* added content destruction component which ensures all records and classified content are immediately destroyed and optionally cleansed
* extension to eager content cleaner to allow cleansing to take place just before the content is deleted from the content store
* base content cleanser
* simple implementation of DoD 5220-22M cleansing algoritm
* data cleansing enabled global configuration
* data cleansing bean configuration
* unit tests
* see RM-2463 and RM-2464
+review RM
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/HEAD@109121 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
Update Java API to store the classification schedule properties.
Fix the classification aspect behaviour to check newly classified
documents.
Add an application context test that the downgrade instructions are
mandatory when the downgrade date is set.
+review RM
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/HEAD@109015 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
Create a new data transfer object and add all the classification fields to
it. Update everywhere we're classifying content with the API to use the
data transfer object. Also update the new edit classification API.
Break the classifyContent implementation into several smaller methods and
update unit tests to target these methods.
Don't actually use new fields in this commit, as there was plenty in this
commit as it was!
+review RM
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/HEAD@108928 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
Added to the classified-content-model - various properties as described in RM-2431 along with a constraint on Reclassification Action.
Addition to the ClassificationSchemeService of methods and types associated with Reclassification. (Upgrade, Downgrade, Declassify). See RM-2432.
Behaviour bean that will automatically set lastReclassificationAction and lastReclassifyBy in response to any change to currentClassificationLevel.
Also some util methods in RMCollections.
Fixed some spelling mistakes in classification-related properties.
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/HEAD@108878 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
* only process services that start with an upper case character. We were being over zealous in our checking which was causing problems, we only care about public services.
* add enable/disable/isenabled methods to pre-processor
* switch off pre-processing when post-processing
* remove method black list
* unit tests, integration tests and UI tests run locally
+review RM @taksoy
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/HEAD@108613 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
Changed Classification Agency to optional throughtout the stack and added a new mandatory property Classified By throughout the stack.
Addressing the fallout in the existing tests due to these changes.
Also enhanced some existing tests to validate the classified by value persistence.
Still to do: need to initialise the Classified By field in the Classify dialog to the current user's full name (not as easy as I'd thought) and add additional AC tests.
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/HEAD@107433 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
It's impossible to instantiate/clone a generic collection, so if a member of the collection
changes then our only option is to attempt to remove it. This has two problems. Firstly,
this is far more brutal than we desire in many cases. Secondly, some collections do not
implement the remove method (e.g. anything returned by Arrays.asList()).
As an attempt to work around this issue we've created some specific implementation
processors. This introduces new potential problems - e.g. if someone has used an exotic
type of list it will be replaced with an ArrayList by the ListPostMethodInvocationProcessor.
+review RM
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/DEV/ENFORCE@107355 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261