diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/classified-content-context.xml b/rm-server/config/alfresco/module/org_alfresco_module_rm/classified-content-context.xml
index 60876950c6..570ec94695 100644
--- a/rm-server/config/alfresco/module/org_alfresco_module_rm/classified-content-context.xml
+++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/classified-content-context.xml
@@ -145,6 +145,7 @@
class="org.alfresco.module.org_alfresco_module_rm.classification.SecurityClearanceServiceImpl"
parent="baseService" init-method="init">
+
diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/model/classifiedContentModel.xml b/rm-server/config/alfresco/module/org_alfresco_module_rm/model/classifiedContentModel.xml
index f1f50a3100..54e2cb2b9d 100644
--- a/rm-server/config/alfresco/module/org_alfresco_module_rm/model/classifiedContentModel.xml
+++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/model/classifiedContentModel.xml
@@ -64,6 +64,14 @@
Classification Agency
The classification agency
d:text
+ false
+
+
+
+ Classified By
+ Name of whoever has applied the classification
+ d:text
+ true
Classification Reasons
diff --git a/rm-server/config/alfresco/templates/webscripts/org/alfresco/rma/classification/classifycontent.post.desc.xml b/rm-server/config/alfresco/templates/webscripts/org/alfresco/rma/classification/classifycontent.post.desc.xml
index 19f9625163..2e43613aa1 100644
--- a/rm-server/config/alfresco/templates/webscripts/org/alfresco/rma/classification/classifycontent.post.desc.xml
+++ b/rm-server/config/alfresco/templates/webscripts/org/alfresco/rma/classification/classifycontent.post.desc.xml
@@ -6,6 +6,7 @@
The body of the post should be in the form, e.g.
{
"classificationLevelId": "aLevelId",
+ "classifiedBy": "some person or entity",
"classificationAgency": "anAgency",
"classificationReasons": [
{
diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/classification/ContentClassificationService.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/classification/ContentClassificationService.java
index 7cb6fb16e2..dc708c9164 100644
--- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/classification/ContentClassificationService.java
+++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/classification/ContentClassificationService.java
@@ -45,6 +45,7 @@ public interface ContentClassificationService
* Classify a piece of content.
*
* @param classificationLevelId The security clearance needed to access the content.
+ * @param classifiedBy Free-form text identifying who classified the content.
* @param classificationAgency The name of the agency responsible for the classification of this content.
* @param classificationReasonIds A non-empty set of ids of reasons for classifying the content in this way.
* @param content The node to classify.
@@ -53,7 +54,8 @@ public interface ContentClassificationService
* @throws InvalidNodeRefException If the node could not be found.
* @throws InvalidNode If the supplied node is not a content node.
*/
- void classifyContent(String classificationLevelId, String classificationAgency, Set classificationReasonIds, NodeRef content)
+ void classifyContent(String classificationLevelId, String classifiedBy, String classificationAgency,
+ Set classificationReasonIds, NodeRef content)
throws LevelIdNotFound, ReasonIdNotFound, InvalidNodeRefException, InvalidNode;
/**
diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/classification/ContentClassificationServiceImpl.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/classification/ContentClassificationServiceImpl.java
index 8d9f857e37..ccea4dd79a 100644
--- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/classification/ContentClassificationServiceImpl.java
+++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/classification/ContentClassificationServiceImpl.java
@@ -85,11 +85,11 @@ public class ContentClassificationServiceImpl extends ServiceBaseImpl implements
};
@Override
- public void classifyContent(String classificationLevelId, String classificationAgency,
- Set classificationReasonIds, final NodeRef content)
+ public void classifyContent(String classificationLevelId, String classifiedBy, String classificationAgency,
+ Set classificationReasonIds, final NodeRef content)
{
checkNotBlank("classificationLevelId", classificationLevelId);
- checkNotBlank("classificationAgency", classificationAgency);
+ mandatory("classifiedBy", classifiedBy);
mandatory("classificationReasonIds", classificationReasonIds);
mandatory("content", content);
@@ -111,7 +111,7 @@ public class ContentClassificationServiceImpl extends ServiceBaseImpl implements
throw new LevelIdNotFound(classificationLevelId);
}
- final Map properties = new HashMap();
+ final Map properties = new HashMap<>();
// Initial classification id
if (nodeService.getProperty(content, PROP_INITIAL_CLASSIFICATION) == null)
{
@@ -124,6 +124,8 @@ public class ContentClassificationServiceImpl extends ServiceBaseImpl implements
// Classification agency
properties.put(PROP_CLASSIFICATION_AGENCY, classificationAgency);
+ properties.put(PROP_CLASSIFIED_BY, classifiedBy);
+
// Classification reason ids
HashSet classificationReasons = new HashSet<>();
for (String classificationReasonId : classificationReasonIds)
diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/classification/model/ClassifiedContentModel.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/classification/model/ClassifiedContentModel.java
index 466d3072e9..641bea8ad7 100644
--- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/classification/model/ClassifiedContentModel.java
+++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/classification/model/ClassifiedContentModel.java
@@ -45,6 +45,7 @@ public interface ClassifiedContentModel
QName PROP_INITIAL_CLASSIFICATION = QName.createQName(CLF_URI, "initialClassification");
QName PROP_CURRENT_CLASSIFICATION = QName.createQName(CLF_URI, "currentClassification");
QName PROP_CLASSIFICATION_AGENCY = QName.createQName(CLF_URI, "classificationAgency");
+ QName PROP_CLASSIFIED_BY = QName.createQName(CLF_URI, "classifiedBy");
QName PROP_CLASSIFICATION_REASONS = QName.createQName(CLF_URI, "classificationReasons");
/** Security Clearance aspect. */
diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/script/classification/ClassifyContentPost.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/script/classification/ClassifyContentPost.java
index 2d6fd40b13..284be8e853 100644
--- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/script/classification/ClassifyContentPost.java
+++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/script/classification/ClassifyContentPost.java
@@ -47,6 +47,7 @@ public class ClassifyContentPost extends AbstractRmWebScript
{
/** Constants */
public static final String CLASSIFICATION_LEVEL_ID = "classificationLevelId";
+ public static final String CLASSIFIED_BY = "classifiedBy";
public static final String CLASSIFICATION_AGENCY = "classificationAgency";
public static final String CLASSIFICATION_REASONS = "classificationReasons";
@@ -73,11 +74,13 @@ public class ClassifyContentPost extends AbstractRmWebScript
{
JSONObject jsonObject = getRequestContentAsJsonObject(req);
String classificationLevelId = getStringValueFromJSONObject(jsonObject, CLASSIFICATION_LEVEL_ID);
- String classificationAgency = getStringValueFromJSONObject(jsonObject, CLASSIFICATION_AGENCY);
+ String classifiedBy = getStringValueFromJSONObject(jsonObject, CLASSIFIED_BY);
+ String classificationAgency = getStringValueFromJSONObject(jsonObject, CLASSIFICATION_AGENCY, false, false);
Set classificationReasonIds = getClassificationReasonIds(jsonObject);
NodeRef document = parseRequestForNodeRef(req);
- contentClassificationService.classifyContent(classificationLevelId, classificationAgency, classificationReasonIds, document);
+ contentClassificationService.classifyContent(classificationLevelId, classifiedBy, classificationAgency,
+ classificationReasonIds, document);
Map model = new HashMap<>(1);
model.put(SUCCESS, true);
diff --git a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/classification/ClassifyTest.java b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/classification/ClassifyTest.java
index d8c1a09efd..e12349ed74 100644
--- a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/classification/ClassifyTest.java
+++ b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/classification/ClassifyTest.java
@@ -43,6 +43,7 @@ public class ClassifyTest extends BaseRMTestCase
private static final String LOWER_CLASSIFICATION_LEVEL = "level2";
private static final String CLASSIFICATION_REASON = "Test Reason 1";
private static final String CLASSIFICATION_AGENCY = "classification agency";
+ private static final String CLASSIFIED_BY = "classified by text";
private static final String RECORD_NAME = "recordname.txt";
/**
@@ -69,6 +70,7 @@ public class ClassifyTest extends BaseRMTestCase
{
contentClassificationService.classifyContent(
CLASSIFICATION_LEVEL,
+ CLASSIFIED_BY,
CLASSIFICATION_AGENCY,
Collections.singleton(CLASSIFICATION_REASON),
record);
@@ -97,6 +99,7 @@ public class ClassifyTest extends BaseRMTestCase
{
contentClassificationService.classifyContent(
CLASSIFICATION_LEVEL,
+ CLASSIFIED_BY,
CLASSIFICATION_AGENCY,
Collections.singleton(CLASSIFICATION_REASON),
record);
@@ -106,10 +109,11 @@ public class ClassifyTest extends BaseRMTestCase
public void then() throws Exception
{
assertTrue(nodeService.hasAspect(record, ClassifiedContentModel.ASPECT_CLASSIFIED));
- assertEquals(CLASSIFICATION_LEVEL, (String)nodeService.getProperty(record, ClassifiedContentModel.PROP_INITIAL_CLASSIFICATION));
+ assertEquals(CLASSIFICATION_LEVEL, (String) nodeService.getProperty(record, ClassifiedContentModel.PROP_INITIAL_CLASSIFICATION));
assertEquals(CLASSIFICATION_LEVEL, (String)nodeService.getProperty(record, ClassifiedContentModel.PROP_CURRENT_CLASSIFICATION));
assertEquals(CLASSIFICATION_AGENCY, (String)nodeService.getProperty(record, ClassifiedContentModel.PROP_CLASSIFICATION_AGENCY));
- assertEquals(Collections.singletonList(CLASSIFICATION_REASON), (List)nodeService.getProperty(record, ClassifiedContentModel.PROP_CLASSIFICATION_REASONS));
+ assertEquals(CLASSIFIED_BY, (String)nodeService.getProperty(record, ClassifiedContentModel.PROP_CLASSIFIED_BY));
+ assertEquals(Collections.singletonList(CLASSIFICATION_REASON), nodeService.getProperty(record, ClassifiedContentModel.PROP_CLASSIFICATION_REASONS));
}
});
}
@@ -148,7 +152,7 @@ public class ClassifyTest extends BaseRMTestCase
@Override
public Void run()
{
- contentClassificationService.classifyContent(CLASSIFICATION_LEVEL, CLASSIFICATION_AGENCY,
+ contentClassificationService.classifyContent(CLASSIFICATION_LEVEL, CLASSIFIED_BY, CLASSIFICATION_AGENCY,
Sets.newHashSet(CLASSIFICATION_REASON), record);
return null;
}
@@ -199,7 +203,7 @@ public class ClassifyTest extends BaseRMTestCase
@Override
public Void run()
{
- contentClassificationService.classifyContent(CLASSIFICATION_LEVEL, CLASSIFICATION_AGENCY,
+ contentClassificationService.classifyContent(CLASSIFICATION_LEVEL, CLASSIFIED_BY, CLASSIFICATION_AGENCY,
Sets.newHashSet(CLASSIFICATION_REASON), record);
return null;
}
diff --git a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/classification/interceptor/DocumentBrowseClassificationEnforcementTest.java b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/classification/interceptor/DocumentBrowseClassificationEnforcementTest.java
index b7c8b364e7..68379b9765 100644
--- a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/classification/interceptor/DocumentBrowseClassificationEnforcementTest.java
+++ b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/classification/interceptor/DocumentBrowseClassificationEnforcementTest.java
@@ -80,7 +80,7 @@ public class DocumentBrowseClassificationEnforcementTest extends BrowseClassific
doc1 = fileFolderService.create(folder, generate(), TYPE_CONTENT).getNodeRef();
doc2 = fileFolderService.create(folder, generate(), TYPE_CONTENT).getNodeRef();
- contentClassificationService.classifyContent(LEVEL1, generate(), newHashSet(REASON), doc1);
+ contentClassificationService.classifyContent(LEVEL1, generate(), generate(), newHashSet(REASON), doc1);
}
/**
@@ -172,8 +172,8 @@ public class DocumentBrowseClassificationEnforcementTest extends BrowseClassific
doc2 = fileFolderService.create(folder, generate(), TYPE_CONTENT).getNodeRef();
doc3 = fileFolderService.create(folder, generate(), TYPE_CONTENT).getNodeRef();
- contentClassificationService.classifyContent(LEVEL1, generate(), newHashSet(REASON), doc1);
- contentClassificationService.classifyContent(LEVEL2, generate(), newHashSet(REASON), doc2);
+ contentClassificationService.classifyContent(LEVEL1, generate(), generate(), newHashSet(REASON), doc1);
+ contentClassificationService.classifyContent(LEVEL2, generate(), generate(), newHashSet(REASON), doc2);
}
/**
@@ -267,8 +267,8 @@ public class DocumentBrowseClassificationEnforcementTest extends BrowseClassific
doc2 = fileFolderService.create(folder, generate(), TYPE_CONTENT).getNodeRef();
doc3 = fileFolderService.create(folder, generate(), TYPE_CONTENT).getNodeRef();
- contentClassificationService.classifyContent(LEVEL1, generate(), newHashSet(REASON), doc1);
- contentClassificationService.classifyContent(LEVEL2, generate(), newHashSet(REASON), doc2);
+ contentClassificationService.classifyContent(LEVEL1, generate(), generate(), newHashSet(REASON), doc1);
+ contentClassificationService.classifyContent(LEVEL2, generate(), generate(), newHashSet(REASON), doc2);
}
/**
diff --git a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/classification/interceptor/DocumentSearchClassificationEnforcementTest.java b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/classification/interceptor/DocumentSearchClassificationEnforcementTest.java
index 0a56a158d4..b7f626faf9 100644
--- a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/classification/interceptor/DocumentSearchClassificationEnforcementTest.java
+++ b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/classification/interceptor/DocumentSearchClassificationEnforcementTest.java
@@ -83,7 +83,7 @@ public class DocumentSearchClassificationEnforcementTest extends SearchClassific
doc1 = fileFolderService.create(folder, searchQuery + generate(), TYPE_CONTENT).getNodeRef();
doc2 = fileFolderService.create(folder, searchQuery + generate(), TYPE_CONTENT).getNodeRef();
- contentClassificationService.classifyContent(LEVEL1, generate(), newHashSet(REASON), doc1);
+ contentClassificationService.classifyContent(LEVEL1, generate(), generate(), newHashSet(REASON), doc1);
}
/**
@@ -174,8 +174,8 @@ public class DocumentSearchClassificationEnforcementTest extends SearchClassific
doc2 = fileFolderService.create(folder, searchQuery + generate(), TYPE_CONTENT).getNodeRef();
doc3 = fileFolderService.create(folder, searchQuery + generate(), TYPE_CONTENT).getNodeRef();
- contentClassificationService.classifyContent(LEVEL1, generate(), newHashSet(REASON), doc1);
- contentClassificationService.classifyContent(LEVEL2, generate(), newHashSet(REASON), doc2);
+ contentClassificationService.classifyContent(LEVEL1, generate(), generate(), newHashSet(REASON), doc1);
+ contentClassificationService.classifyContent(LEVEL2, generate(), generate(), newHashSet(REASON), doc2);
}
/**
@@ -266,8 +266,8 @@ public class DocumentSearchClassificationEnforcementTest extends SearchClassific
doc2 = fileFolderService.create(folder, searchQuery + generate(), TYPE_CONTENT).getNodeRef();
doc3 = fileFolderService.create(folder, searchQuery + generate(), TYPE_CONTENT).getNodeRef();
- contentClassificationService.classifyContent(LEVEL1, generate(), newHashSet(REASON), doc1);
- contentClassificationService.classifyContent(LEVEL2, generate(), newHashSet(REASON), doc2);
+ contentClassificationService.classifyContent(LEVEL1, generate(), generate(), newHashSet(REASON), doc1);
+ contentClassificationService.classifyContent(LEVEL2, generate(), generate(), newHashSet(REASON), doc2);
}
/**
diff --git a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/classification/interceptor/RecordBrowseClassificationEnforcementTest.java b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/classification/interceptor/RecordBrowseClassificationEnforcementTest.java
index 29fb0fd92a..0d0eb747f8 100644
--- a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/classification/interceptor/RecordBrowseClassificationEnforcementTest.java
+++ b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/classification/interceptor/RecordBrowseClassificationEnforcementTest.java
@@ -74,7 +74,7 @@ public class RecordBrowseClassificationEnforcementTest extends BrowseClassificat
record1 = utils.createRecord(folder, generate());
record2 = utils.createRecord(folder, generate());
- contentClassificationService.classifyContent(LEVEL1, generate(), newHashSet(REASON), record1);
+ contentClassificationService.classifyContent(LEVEL1, generate(), generate(), newHashSet(REASON), record1);
}
/**
@@ -169,8 +169,8 @@ public class RecordBrowseClassificationEnforcementTest extends BrowseClassificat
record2 = utils.createRecord(folder, generate());
record3 = utils.createRecord(folder, generate());
- contentClassificationService.classifyContent(LEVEL1, generate(), newHashSet(REASON), record1);
- contentClassificationService.classifyContent(LEVEL2, generate(), newHashSet(REASON), record2);
+ contentClassificationService.classifyContent(LEVEL1, generate(), generate(), newHashSet(REASON), record1);
+ contentClassificationService.classifyContent(LEVEL2, generate(), generate(), newHashSet(REASON), record2);
}
/**
@@ -267,8 +267,8 @@ public class RecordBrowseClassificationEnforcementTest extends BrowseClassificat
record2 = utils.createRecord(folder, generate());
record3 = utils.createRecord(folder, generate());
- contentClassificationService.classifyContent(LEVEL1, generate(), newHashSet(REASON), record1);
- contentClassificationService.classifyContent(LEVEL2, generate(), newHashSet(REASON), record2);
+ contentClassificationService.classifyContent(LEVEL1, generate(), generate(), newHashSet(REASON), record1);
+ contentClassificationService.classifyContent(LEVEL2, generate(), generate(), newHashSet(REASON), record2);
}
/**
diff --git a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/classification/interceptor/RecordSearchClassificationEnforcementTest.java b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/classification/interceptor/RecordSearchClassificationEnforcementTest.java
index 5e158eeb63..3d83f9462f 100644
--- a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/classification/interceptor/RecordSearchClassificationEnforcementTest.java
+++ b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/classification/interceptor/RecordSearchClassificationEnforcementTest.java
@@ -76,7 +76,7 @@ public class RecordSearchClassificationEnforcementTest extends SearchClassificat
record1 = utils.createRecord(folder, searchQuery + generate());
record2 = utils.createRecord(folder, searchQuery + generate());
- contentClassificationService.classifyContent(LEVEL1, generate(), newHashSet(REASON), record1);
+ contentClassificationService.classifyContent(LEVEL1, generate(), generate(), newHashSet(REASON), record1);
}
/**
@@ -170,8 +170,8 @@ public class RecordSearchClassificationEnforcementTest extends SearchClassificat
record2 = utils.createRecord(folder, searchQuery + generate());
record3 = utils.createRecord(folder, searchQuery + generate());
- contentClassificationService.classifyContent(LEVEL1, generate(), newHashSet(REASON), record1);
- contentClassificationService.classifyContent(LEVEL2, generate(), newHashSet(REASON), record2);
+ contentClassificationService.classifyContent(LEVEL1, generate(), generate(), newHashSet(REASON), record1);
+ contentClassificationService.classifyContent(LEVEL2, generate(), generate(), newHashSet(REASON), record2);
}
/**
@@ -265,8 +265,8 @@ public class RecordSearchClassificationEnforcementTest extends SearchClassificat
record2 = utils.createRecord(folder, searchQuery + generate());
record3 = utils.createRecord(folder, searchQuery + generate());
- contentClassificationService.classifyContent(LEVEL1, generate(), newHashSet(REASON), record1);
- contentClassificationService.classifyContent(LEVEL2, generate(), newHashSet(REASON), record2);
+ contentClassificationService.classifyContent(LEVEL1, generate(), generate(), newHashSet(REASON), record1);
+ contentClassificationService.classifyContent(LEVEL2, generate(), generate(), newHashSet(REASON), record2);
}
/**
diff --git a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/classification/interceptor/RelationshipClassificationEnforcementTest.java b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/classification/interceptor/RelationshipClassificationEnforcementTest.java
index f852c78172..ee5356c075 100644
--- a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/classification/interceptor/RelationshipClassificationEnforcementTest.java
+++ b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/classification/interceptor/RelationshipClassificationEnforcementTest.java
@@ -94,7 +94,7 @@ public class RelationshipClassificationEnforcementTest extends BaseRMTestCase
{
filePlanPermissionService.setPermission(category, myUser, FILING);
securityClearanceService.setUserSecurityClearance(myUser, LEVEL3);
- contentClassificationService.classifyContent(LEVEL1, generate(), newHashSet(REASON), record1);
+ contentClassificationService.classifyContent(LEVEL1, generate(), generate(), newHashSet(REASON), record1);
relationshipService.addRelationship(CUSTOM_REF_RENDITION.getLocalName(), record1, record2);
}
diff --git a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/classification/interceptor/SavedSearchClassificationEnforcementTest.java b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/classification/interceptor/SavedSearchClassificationEnforcementTest.java
index e8c3c514aa..dfdf377a8a 100644
--- a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/classification/interceptor/SavedSearchClassificationEnforcementTest.java
+++ b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/classification/interceptor/SavedSearchClassificationEnforcementTest.java
@@ -96,9 +96,9 @@ public class SavedSearchClassificationEnforcementTest extends SearchClassificati
searchParameters.setIncludeUndeclaredRecords(true);
rmSearchService.saveSearch(siteId, savedSearchName, generate(), searchQuery + "*", searchParameters, true);
- contentClassificationService.classifyContent(LEVEL1, generate(), newHashSet(REASON), record1);
- contentClassificationService.classifyContent(LEVEL2, generate(), newHashSet(REASON), record3);
- contentClassificationService.classifyContent(LEVEL1, generate(), newHashSet(REASON), record5);
+ contentClassificationService.classifyContent(LEVEL1, generate(), generate(), newHashSet(REASON), record1);
+ contentClassificationService.classifyContent(LEVEL2, generate(), generate(), newHashSet(REASON), record3);
+ contentClassificationService.classifyContent(LEVEL1, generate(), generate(), newHashSet(REASON), record5);
}
/**
diff --git a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/issue/RM2260Test.java b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/issue/RM2260Test.java
index 81290a7221..4af4153e22 100644
--- a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/issue/RM2260Test.java
+++ b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/issue/RM2260Test.java
@@ -86,7 +86,7 @@ public class RM2260Test extends BaseRMTestCase
@Override
public Void run()
{
- contentClassificationService.classifyContent(LEVEL, generate(), newHashSet(REASON), record);
+ contentClassificationService.classifyContent(LEVEL, generate(), generate(), newHashSet(REASON), record);
return null;
}
}, myUser);
diff --git a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/legacy/jscript/JSONConversionComponentTest.java b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/legacy/jscript/JSONConversionComponentTest.java
index e9cd9edf69..adb4b3337d 100644
--- a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/legacy/jscript/JSONConversionComponentTest.java
+++ b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/legacy/jscript/JSONConversionComponentTest.java
@@ -92,7 +92,7 @@ public class JSONConversionComponentTest extends BaseRMTestCase
@Override
public void when() throws Exception
{
- contentClassificationService.classifyContent(LEVEL1, generate(), newHashSet(REASON1), record);
+ contentClassificationService.classifyContent(LEVEL1, generate(), generate(), newHashSet(REASON1), record);
jsonString = converter.toJSON(record, true);
}
@@ -131,7 +131,7 @@ public class JSONConversionComponentTest extends BaseRMTestCase
@Override
public void when() throws Exception
{
- contentClassificationService.classifyContent(UNCLASSIFIED_ID, generate(), newHashSet(REASON1), record);
+ contentClassificationService.classifyContent(UNCLASSIFIED_ID, generate(), generate(), newHashSet(REASON1), record);
jsonString = converter.toJSON(record, true);
}
@@ -206,7 +206,7 @@ public class JSONConversionComponentTest extends BaseRMTestCase
@Override
public void when() throws Exception
{
- contentClassificationService.classifyContent(LEVEL1, generate(), newHashSet(REASON1), file);
+ contentClassificationService.classifyContent(LEVEL1, generate(), generate(), newHashSet(REASON1), file);
jsonString = converter.toJSON(file, true);
}
@@ -243,7 +243,7 @@ public class JSONConversionComponentTest extends BaseRMTestCase
@Override
public void when() throws Exception
{
- contentClassificationService.classifyContent(UNCLASSIFIED_ID, generate(), newHashSet(REASON1), file);
+ contentClassificationService.classifyContent(UNCLASSIFIED_ID, generate(), generate(), newHashSet(REASON1), file);
jsonString = converter.toJSON(file, true);
}
diff --git a/rm-server/unit-test/java/org/alfresco/module/org_alfresco_module_rm/classification/ContentClassificationServiceImplUnitTest.java b/rm-server/unit-test/java/org/alfresco/module/org_alfresco_module_rm/classification/ContentClassificationServiceImplUnitTest.java
index 4ceacc72ce..02d5c28d7f 100644
--- a/rm-server/unit-test/java/org/alfresco/module/org_alfresco_module_rm/classification/ContentClassificationServiceImplUnitTest.java
+++ b/rm-server/unit-test/java/org/alfresco/module/org_alfresco_module_rm/classification/ContentClassificationServiceImplUnitTest.java
@@ -83,6 +83,7 @@ public class ContentClassificationServiceImplUnitTest implements ClassifiedConte
{
MockitoAnnotations.initMocks(this);
MockAuthenticationUtilHelper.setup(mockAuthenticationUtil);
+ contentClassificationServiceImpl.setAuthenticationUtil(mockAuthenticationUtil);
}
/** Classify a piece of content with a couple of reasons and check the NodeService is called correctly. */
@@ -102,9 +103,9 @@ public class ContentClassificationServiceImplUnitTest implements ClassifiedConte
when(mockNodeService.hasAspect(content, ClassifiedContentModel.ASPECT_CLASSIFIED)).thenReturn(false);
when(mockSecurityClearanceService.isCurrentUserClearedForClassification("levelId1")).thenReturn(true);
- // Call the method under test.
- contentClassificationServiceImpl.classifyContent("levelId1", "classificationAgency",
- Sets.newHashSet("reasonId1", "reasonId2"), content);
+ // Call the method under test
+ contentClassificationServiceImpl.classifyContent("levelId1", "classifiedBy", "classificationAgency",
+ Sets.newHashSet("reasonId1", "reasonId2"), content);
verify(mockNodeService).addAspect(eq(content), eq(ClassifiedContentModel.ASPECT_CLASSIFIED),
propertiesCaptor.capture());
@@ -113,10 +114,12 @@ public class ContentClassificationServiceImplUnitTest implements ClassifiedConte
HashSet expectedPropertyKeys = Sets.newHashSet(ClassifiedContentModel.PROP_INITIAL_CLASSIFICATION,
ClassifiedContentModel.PROP_CURRENT_CLASSIFICATION,
ClassifiedContentModel.PROP_CLASSIFICATION_AGENCY,
+ ClassifiedContentModel.PROP_CLASSIFIED_BY,
ClassifiedContentModel.PROP_CLASSIFICATION_REASONS);
assertEquals("Aspect created with unexpected set of keys.", expectedPropertyKeys, properties.keySet());
assertEquals("Unexpected initial classification.", level.getId(), properties.get(ClassifiedContentModel.PROP_INITIAL_CLASSIFICATION));
assertEquals("Unexpected current classification.", level.getId(), properties.get(ClassifiedContentModel.PROP_CURRENT_CLASSIFICATION));
+ assertEquals("Unexpected classifiedBy.", "classifiedBy", properties.get(ClassifiedContentModel.PROP_CLASSIFIED_BY));
assertEquals("Unexpected agency.", "classificationAgency", properties.get(ClassifiedContentModel.PROP_CLASSIFICATION_AGENCY));
Set expectedReasonIds = Sets.newHashSet("reasonId1", "reasonId2");
assertEquals("Unexpected set of reasons.", expectedReasonIds, properties.get(ClassifiedContentModel.PROP_CLASSIFICATION_REASONS));
@@ -131,7 +134,7 @@ public class ContentClassificationServiceImplUnitTest implements ClassifiedConte
when(mockNodeService.getType(notAPieceOfContent)).thenReturn(ContentModel.TYPE_FOLDER);
// Call the method under test.
- contentClassificationServiceImpl.classifyContent("levelId1", "classificationAgency",
+ contentClassificationServiceImpl.classifyContent("levelId1", "classifiedBy", "classificationAgency",
Sets.newHashSet("reasonId1", "reasonId2"), notAPieceOfContent);
}
@@ -145,7 +148,7 @@ public class ContentClassificationServiceImplUnitTest implements ClassifiedConte
when(mockNodeService.hasAspect(classifiedContent, ClassifiedContentModel.ASPECT_CLASSIFIED)).thenReturn(true);
// Call the method under test.
- contentClassificationServiceImpl.classifyContent("levelId1", "classificationAgency",
+ contentClassificationServiceImpl.classifyContent("levelId1", "classifiedBy", "classificationAgency",
Sets.newHashSet("reasonId1", "reasonId2"), classifiedContent);
}
@@ -158,7 +161,8 @@ public class ContentClassificationServiceImplUnitTest implements ClassifiedConte
when(mockNodeService.hasAspect(sharedContent, QuickShareModel.ASPECT_QSHARE)).thenReturn(true);
// Call the method under test.
- contentClassificationServiceImpl.classifyContent(generateText(), generateText(), newHashSet(generateText(), generateText()), sharedContent);
+ contentClassificationServiceImpl.classifyContent(generateText(), generateText(), generateText(),
+ newHashSet(generateText(), generateText()), sharedContent);
}
/**
@@ -175,7 +179,7 @@ public class ContentClassificationServiceImplUnitTest implements ClassifiedConte
when(mockSecurityClearanceService.isCurrentUserClearedForClassification("levelId1")).thenReturn(false);
// Call the method under test.
- contentClassificationServiceImpl.classifyContent("levelId1", "classificationAgency",
+ contentClassificationServiceImpl.classifyContent("levelId1", "classifiedBy","classificationAgency",
Sets.newHashSet("reasonId1", "reasonId2"), classifiedContent);
}
diff --git a/rm-server/unit-test/java/org/alfresco/module/org_alfresco_module_rm/script/classification/ClassifyContentPostUnitTest.java b/rm-server/unit-test/java/org/alfresco/module/org_alfresco_module_rm/script/classification/ClassifyContentPostUnitTest.java
index e6c8ef9952..08e8c3ff73 100644
--- a/rm-server/unit-test/java/org/alfresco/module/org_alfresco_module_rm/script/classification/ClassifyContentPostUnitTest.java
+++ b/rm-server/unit-test/java/org/alfresco/module/org_alfresco_module_rm/script/classification/ClassifyContentPostUnitTest.java
@@ -22,6 +22,7 @@ import static com.google.common.collect.Sets.newHashSet;
import static org.alfresco.module.org_alfresco_module_rm.script.classification.ClassifyContentPost.CLASSIFICATION_AGENCY;
import static org.alfresco.module.org_alfresco_module_rm.script.classification.ClassifyContentPost.CLASSIFICATION_LEVEL_ID;
import static org.alfresco.module.org_alfresco_module_rm.script.classification.ClassifyContentPost.CLASSIFICATION_REASONS;
+import static org.alfresco.module.org_alfresco_module_rm.script.classification.ClassifyContentPost.CLASSIFIED_BY;
import static org.alfresco.util.WebScriptUtils.getStringValueFromJSONObject;
import static org.alfresco.util.WebScriptUtils.putValuetoJSONObject;
import static org.junit.Assert.assertEquals;
@@ -61,6 +62,7 @@ public class ClassifyContentPostUnitTest extends BaseWebScriptUnitTest
private static final String ID = "id";
private static final String SUCCESS = "success";
private static final String LEVEL_ID = "aLevelId";
+ private static final String BY = "bySomeone";
private static final String AGENCY = "anAgency";
private static final String REASON1_ID = "reason1Id";
private static final String REASON2_ID = "reason2Id";
@@ -116,7 +118,7 @@ public class ClassifyContentPostUnitTest extends BaseWebScriptUnitTest
assertEquals(getStringValueFromJSONObject(json, SUCCESS), Boolean.TRUE.toString());
// Verify that the classify content method was called
- verify(mockedContentClassificationService, times(1)).classifyContent(LEVEL_ID, AGENCY, newHashSet(REASON1_ID, REASON2_ID), record);
+ verify(mockedContentClassificationService, times(1)).classifyContent(LEVEL_ID, BY, AGENCY, newHashSet(REASON1_ID, REASON2_ID), record);
}
/**
@@ -128,6 +130,7 @@ public class ClassifyContentPostUnitTest extends BaseWebScriptUnitTest
{
JSONObject content = new JSONObject();
putValuetoJSONObject(content, CLASSIFICATION_LEVEL_ID, LEVEL_ID);
+ putValuetoJSONObject(content, CLASSIFIED_BY, BY);
putValuetoJSONObject(content, CLASSIFICATION_AGENCY, AGENCY);
JSONObject classificationReason1 = new JSONObject();