Compare commits

..

399 Commits

Author SHA1 Message Date
alfresco-build
35e2523fe6 [maven-release-plugin] prepare release V2.7.0.1 2018-06-15 13:14:50 +01:00
Tom Page
54285c1fd9 RM-6363 Use internal-releases credentials for all deployment repos.
(cherry picked from commit 7840703706)
2018-06-15 11:46:24 +01:00
Tom Page
e381b8ba15 RM-6363 Add correct destinations for released artifacts.
(cherry picked from commit f47875c100)
2018-06-15 11:46:20 +01:00
alfresco-build
5796d0ef11 [maven-release-plugin] prepare for next development iteration 2018-06-06 15:49:44 +01:00
alfresco-build
2ea308da3c [maven-release-plugin] prepare release V2.7.0.1 2018-06-06 15:49:42 +01:00
alfresco-build
1ae5c9a3ef [maven-release-plugin] prepare for next development iteration 2018-06-06 12:32:55 +01:00
alfresco-build
6fb73c0f26 [maven-release-plugin] prepare release V2.7.0.1 2018-06-06 12:32:53 +01:00
alfresco-build
f2c2a970d4 [maven-release-plugin] prepare for next development iteration 2018-06-06 10:47:51 +01:00
alfresco-build
35991c7bf2 [maven-release-plugin] prepare release V2.7.0.1 2018-06-06 10:47:49 +01:00
Jelena Cule
d2500ac516 Merge branch 'hotfix-2.7/RM-6377_AccessionVisibilityFixBackport' into 'release/V2.7.0.x'
Backport fix from master

See merge request records-management/records-management!1020
2018-06-01 10:11:33 +01:00
Roxana Lucanu-Ghetu
6175e46e24 RM-6337 Code review changes 2018-05-31 16:02:21 +03:00
Roxana Lucanu-Ghetu
5a32d48b57 RM-6337 Code review changes 2018-05-31 16:01:59 +03:00
Roxana Lucanu-Ghetu
8c37e0ca82 RM-6337 Fix failing tests 2018-05-31 16:00:32 +03:00
Roxana Lucanu-Ghetu
085cb55764 RM-6337 Fix visibility conditions for accession step. 2018-05-31 15:59:47 +03:00
jcule
0e9a680ea2 RM-6310: sc:securityMarksSearch is not properly updated when editing the content classification (affects the results from RM search results): automation tests 2018-05-29 15:25:15 +01:00
jcule
f254a2462e RM-6310: sc:securityMarksSearch is not properly updated when editing the content classification (affects the results from RM search results): fixed typo 2018-05-29 14:48:39 +01:00
jcule
5f940ed287 RM-6310: sc:securityMarksSearch is not properly updated when editing the content classification (affects the results from RM search results): automation test 2018-05-25 21:46:19 +01:00
jcule
576cc2d06e RM-6318: Search for "derived by" and classification reasons: Automate AC - fixed tests 2018-05-23 16:37:03 +01:00
jcule
d278ed86a9 Merge remote-tracking branch 'remotes/origin/release/V2.7.0.x' into feature/RM-6310_securityMarksSearchNotProperlyUpdated_AutomationTests 2018-05-23 15:10:06 +01:00
jcule
4c902ebf0e Merge remote-tracking branch 'remotes/origin/release/V2.7.0.x' into feature/RM-6310_securityMarksSearchNotProperlyUpdated_AutomationTests 2018-05-23 12:42:57 +01:00
jcule
43ad506338 RM-6318: Search for "derived by" and classification reasons: Automate AC 2018-05-23 11:53:11 +01:00
jcule
71d353d963 RM-6318: Search for "derived by" and classification reasons: Automate AC 2018-05-22 20:13:42 +01:00
Sara Aspery
d4721683f6 Merge branch 'feature/RM-6318_SearchUpdatesForCert' into 'release/V2.7.0.x'
RM-6318 SearchDerivedByJavaAPI

See merge request records-management/records-management!996
2018-05-22 13:26:30 +01:00
cagache
933904a15c added license 2018-05-21 16:03:34 +03:00
cagache
e6ab009ee2 code review changes 2018-05-21 15:50:56 +03:00
jcule
c1ffecb1d6 RM-6318: Search for "derived by" and classification reasons: Automate AC 2018-05-21 13:38:21 +01:00
cagache
9e148643ec reverted version changes 2018-05-21 11:58:17 +03:00
cagache
3eb3983b30 javadoc updates 2018-05-21 11:20:24 +03:00
cagache
85a3c99b33 fix license 2018-05-21 11:08:50 +03:00
cagache
f400532496 Merge remote-tracking branch 'remotes/origin/release/V2.7' into hotfix-2.7/RM-6320_DeclassificationReviewTests 2018-05-21 10:41:15 +03:00
cagache
4c11e48ff3 RM-6320 Automated tests for Declassification review for records and record folders 2018-05-18 17:45:38 +03:00
Jelena Cule
b641f3807c Merge branch 'feature/RM-6302_AddEditFunctionalityToDispositionSchedule_AutomationTest1' into 'release/V2.7.0.x'
Merge to release/v2.7.0.x

See merge request records-management/records-management!1005
2018-05-18 10:36:53 +01:00
Jelena Cule
dc6e2e0e98 Merge branch 'feature/RM-6302_AddEditFunctionalityToDispositionSchedule_AutomationTest1' into 'release/V2.7'
Merge to release/V2.7

See merge request records-management/records-management!1004
2018-05-18 10:34:50 +01:00
cagache
603362ddd1 Merge remote-tracking branch 'remotes/origin/release/V2.7.0.x' into release/V2.7 2018-05-18 10:54:20 +03:00
Claudia Agache
b3df55117e Merge branch 'feature/RM-6320_AddDecassificationReviewInfo' into 'release/V2.7.0.x'
Add Declassification Review in Records Search

See merge request records-management/records-management!1000
2018-05-18 08:52:39 +01:00
Tom Page
65a3919d2f Merge release/V2.7.0.x into release/V2.7. 2018-05-18 06:51:45 +01:00
Tom Page
f838f6a90e Update version to V2.7.0.1-SNAPSHOT. 2018-05-18 06:51:02 +01:00
jcule
280fb0f422 RM-6310: sc:securityMarksSearch is not properly updated when editing the content classification (affects the results from RM search results): automation test 2018-05-17 22:46:53 +01:00
alfresco-build
bab3604934 [maven-release-plugin] prepare for next development iteration 2018-05-17 13:53:57 +01:00
alfresco-build
1a48c3e689 [maven-release-plugin] prepare release V2.7.b 2018-05-17 13:53:55 +01:00
Jelena Cule
6617577e19 Merge branch 'master' into 'feature/RM-6318_SearchForDerivedByAndClassificationReasons_AutomateAC'
Sync with master

See merge request records-management/records-management!1003
2018-05-17 13:12:44 +01:00
alfresco-build
b4426f4e27 [maven-release-plugin] prepare for next development iteration 2018-05-17 11:49:15 +01:00
alfresco-build
cfad6fdf74 [maven-release-plugin] prepare release V2.7.b 2018-05-17 11:49:13 +01:00
jcule
fdfd6279bd RM-6302: Add Edi tFunctionality To Disposition Schedule: automation tests 2018-05-16 18:22:28 +01:00
Roxana Lucanu-Ghetu
8251588fd1 RM-6320 Code review changes. 2018-05-16 15:35:43 +03:00
jcule
79873a908d RM-6302: Add Edi tFunctionality To Disposition Schedule: automation tests 2018-05-16 11:55:14 +01:00
Roxana Lucanu-Ghetu
5dd2640674 RM-6320 Added Declassification Review properties in records search 2018-05-16 11:03:32 +03:00
Ross Gale
c68ce588bb RM-6318 code review changes 2018-05-15 10:12:03 +01:00
Ross Gale
233fa33afb Merge branch 'release/V2.7' 2018-05-15 09:01:56 +01:00
Ross Gale
e2665e0c2f record only merge with 2.7.0.x 2018-05-15 09:01:01 +01:00
Tom Page
38ba822d29 Record-only merge release/V2.7 into master. 2018-05-15 08:08:25 +01:00
Ross Gale
0866f80b59 Merge branch 'feature/RM-6302_EditDispositionSchedule' into 'release/V2.7.0.x'
merge edit disposition fix to 2.7.0.x

See merge request records-management/records-management!998
2018-05-14 17:02:54 +01:00
Ross Gale
b52bdf395c Merge branch 'feature/RM-6302_EditDispositionSchedule' into 'release/V2.7'
merging edit disposition schedule to 2.7

See merge request records-management/records-management!997
2018-05-14 17:02:04 +01:00
Ross Gale
d80cd3698e Merge branch 'feature/RM-6302_EditDispositionSchedule' into 'master'
Adding the ability to block disposition step completion until all events in the step have been resolved

See merge request records-management/records-management!977
2018-05-14 16:59:42 +01:00
Tom Page
0d32715f19 Revert "[maven-release-plugin] prepare release V2.7.b"
This reverts commit 62f5c84f2e.
2018-05-14 14:02:36 +01:00
Tom Page
a627422919 Revert "[maven-release-plugin] prepare for next development iteration"
This reverts commit e1c5b749ed.
2018-05-14 14:02:34 +01:00
alfresco-build
e1c5b749ed [maven-release-plugin] prepare for next development iteration 2018-05-14 13:49:40 +01:00
alfresco-build
62f5c84f2e [maven-release-plugin] prepare release V2.7.b 2018-05-14 13:49:38 +01:00
cagache
7f904edcfd Merge branch 'release/V2.7' 2018-05-14 14:24:41 +03:00
cagache
80c3582878 Merge remote-tracking branch 'remotes/origin/release/V2.7.0.x' into release/V2.7 2018-05-14 14:19:42 +03:00
Claudia Agache
6a44198d5a Merge branch 'hotfix-2.7/RM-6311_TestRMSearchOrderByMarks_sm' into 'release/V2.7.0.x'
RM-6311 added API test to check that rm search results are sorted by marks

See merge request records-management/records-management!994
2018-05-14 10:03:46 +01:00
cagache
cc97785d23 code review changes 2018-05-14 11:07:06 +03:00
cagache
7c41b89cf3 RM-6311 wait for the expected records to be in the search results list 2018-05-11 17:26:09 +03:00
cagache
d0c4593a50 RM-6311 added API test to check that rm search results are ordered by security marks 2018-05-11 16:54:54 +03:00
Rodica Sutu
e87bfb626b Merge branch 'master' of git.alfresco.com:records-management/records-management 2018-05-11 09:21:11 +03:00
Jelena Cule
24ced5d13a Merge branch 'master' into 'feature/RM-6302_EditDispositionSchedule'
Syncing with master

See merge request records-management/records-management!985
2018-05-10 10:23:13 +01:00
Ross Gale
2345e871e1 RM-6302 code review comments addressed 2018-05-09 15:52:01 +01:00
Ross Gale
081dcddbea Merge branch 'master' into feature/RM-6302_EditDispositionSchedule 2018-05-09 14:33:33 +01:00
Ross Gale
888157199d search fields added 2018-05-09 14:29:12 +01:00
Tom Page
ebd7ac2956 Update version to V3.0.0-SNAPSHOT. 2018-05-09 09:15:34 +01:00
Ross Gale
504d85e8d3 Search changes, adding support for search by reason key and 'other source' names 2018-05-04 15:46:30 +01:00
Rodica Sutu
ed5fc95bf3 Merge remote-tracking branch 'remotes/origin/feature/RM-6302_EditDispositionSchedule' 2018-05-04 14:57:14 +03:00
Tom Page
5ff6808ecc Record-only merge of release/V2.7 into master. 2018-05-04 10:28:59 +01:00
Tom Page
b3f9f0bd52 Record-only merge release/V2.7.0.x into release/V2.7. 2018-05-04 10:22:30 +01:00
Tom Page
29ab436eaf Update version to V2.7.1-SNAPSHOT. 2018-05-04 10:18:40 +01:00
alfresco-build
7b15eb6963 [maven-release-plugin] prepare for next development iteration 2018-05-04 10:10:11 +01:00
alfresco-build
606c1637d3 [maven-release-plugin] prepare release V2.7.0 2018-05-04 10:10:09 +01:00
jcule
83635643e6 RM-6288: Record Search of classified files with marks return also the files classified only with classification levels: api test 2018-05-03 18:01:16 +01:00
Ross Gale
308e86a4e5 RM-6302 adding the java work to edit disposition schedule 2018-05-02 21:52:08 +01:00
Ross Gale
b8af7ba22a JITC prevent accession disposition action being offered if there is an incomplete event 2018-05-01 17:51:13 +01:00
Claudia Agache
3fbc054881 Merge branch 'feature/RM-5234_FilterByLoginEventsTests_fp' into 'master'
RM-5234 Filter audit logs by Login events

See merge request records-management/records-management!972
2018-04-30 19:05:17 +01:00
Roxana Lucanu
3beaf71bb1 Merge branch 'feature/RM-5234_AuditEventsFilter_fp' into 'master'
RM-5234 Fix Login filter

See merge request records-management/records-management!971
2018-04-30 19:01:18 +01:00
Roxana Lucanu-Ghetu
d85ded1a8e RM-5234 Minor refactor. 2018-04-30 21:00:40 +03:00
gbroadbent
9f38cddb3a SIMPLIFIED CHINESE: Updated bundle based on EN-RM-rev2018-04-30T100445 2018-04-30 17:12:29 +01:00
gbroadbent
dc10fcb806 BRAZILIAN Portuguese: Updated bundle based on EN-RM-rev2018-04-30T100445 2018-04-30 17:11:49 +01:00
gbroadbent
d25e253a27 RUSSIAN: Updated bundle based on EN-RM-rev2018-04-30T100445 2018-04-30 17:11:13 +01:00
gbroadbent
063792cf58 DUTCH: Updated bundle based on EN-RM-rev2018-04-30T100445 2018-04-30 17:10:36 +01:00
gbroadbent
c462db8e1b NORWEGIAN Bokmal: Updated bundle based on EN-RM-rev2018-04-30T100445 2018-04-30 17:10:05 +01:00
gbroadbent
7a28007ca2 JAPANESE: Updated bundle based on EN-RM-rev2018-04-30T100445 2018-04-30 17:09:32 +01:00
gbroadbent
41643a0509 ITALIAN: Updated Italian bundle based on EN-RM-rev2018-04-30T100445 2018-04-30 17:08:50 +01:00
gbroadbent
4a735cde65 FRENCH: Updated French bundle based on EN-RM-rev2018-04-30T100445 2018-04-30 17:08:17 +01:00
gbroadbent
230460f8ec SPANISH: Updated Spanish bundle based on EN-RM-rev2018-04-30T100445 2018-04-30 17:07:27 +01:00
gbroadbent
646aa49bfe GERMAN: Updated German bundle based on EN-RM-rev2018-04-30T100445 2018-04-30 17:06:37 +01:00
cagache
918751f962 review changes 2018-04-30 15:54:46 +03:00
Ross Gale
a20ccc5705 WIP edit disposition capability 2018-04-30 11:52:47 +01:00
cagache
5b14d7fd4f RM-5234 Check that user can filter the audit logs by Login successful and Login unsuccessful events 2018-04-30 12:42:29 +03:00
Roxana Lucanu-Ghetu
03579010f1 RM-5234 Fix Login filter 2018-04-30 10:08:19 +03:00
Ross Gale
aa9672cc25 Update rm-events.properties adding string for declassification review 2018-04-27 15:36:18 +01:00
gbroadbent
a0ca321bb8 BRAZILIAN PORTUGUESE: Updated Italian bundle based on EN-RM-rev2018-04-27T090855 2018-04-27 15:18:31 +01:00
gbroadbent
e761227120 RUSSIAN: Updated Italian bundle based on EN-RM-rev2018-04-27T090855 2018-04-27 15:17:10 +01:00
gbroadbent
9163374076 DUTCH: Updated Dutch bundle based on EN-RM-rev2018-04-27T090855 2018-04-27 15:13:31 +01:00
gbroadbent
103fdfedea ITALIAN: Updated Italian bundle based on EN-RM-rev2018-04-27T090855 2018-04-27 15:12:45 +01:00
gbroadbent
59b0674a42 FRENCH: Updated French bundle based on EN-RM-rev2018-04-27T090855 2018-04-27 15:10:08 +01:00
gbroadbent
12a6063e4b SPANISH: Updated Spanish bundle based on EN-RM-rev2018-04-27T090855 2018-04-27 15:08:11 +01:00
gbroadbent
4e27fc92c1 GERMAN: Updated German bundle based on EN-RM-rev2018-04-27T090855 2018-04-27 14:49:01 +01:00
Claudia Agache
405a7d3502 Merge branch 'rm-automation-api/RM-5236_AuditGroupEventsTests' into 'master'
RM-5236 Created tests for Audit Group Events

See merge request records-management/records-management!966
2018-04-27 08:26:50 +01:00
Tom Page
9d080fabd8 Merge branch 'feature/RM-5236_AuditGroupEvents_no' into 'master'
RM-5236 Audit events for user groups.

See merge request records-management/records-management!965
2018-04-27 08:22:26 +01:00
Tom Page
95c8e56673 Merge RM-5236_AuditGroupEvents_no into RM-5236_AuditGroupEventsTests. 2018-04-26 15:50:08 +01:00
Tom Page
b37100c477 RM-5236 Refactor common code when getting node name. 2018-04-26 15:49:07 +01:00
cagache
600ad04c44 fix license 2018-04-25 16:50:07 +03:00
cagache
71dadbf722 RM-5236 Added tests for audit group events 2018-04-25 16:40:35 +03:00
cagache
3ee0e2090e Merge remote-tracking branch 'remotes/origin/feature/RM-5236_AuditGroupEvents_no' into rm-automation-api/RM-5236_AuditGroupEventsTests 2018-04-25 16:39:29 +03:00
Tom Page
04686978b3 RM-5236 Audit event for removing group members.
Also tidy up title of audit events so that the user group display
label is used if it exists.
2018-04-25 12:22:23 +01:00
Tom Page
524fc7f740 RM-5236 Audit event for adding member to user group. 2018-04-25 10:54:01 +01:00
Rodica Sutu
7ed8ef7684 Merge branch 'rm-automation-api/RM-6223_CreateUserEventNotDisplayed_no' into 'master'
Tests for RM-6223 Create User Event Not Displayed in the list of audit entries

See merge request records-management/records-management!964
2018-04-25 10:17:54 +01:00
Rodica Sutu
0b44e3fd70 review changes 2018-04-25 11:07:14 +03:00
Rodica Sutu
62d4840ae1 update the java docs for the changes added 2018-04-25 09:41:39 +03:00
Rodica Sutu
535d50edd1 Merge remote-tracking branch 'remotes/origin/master' into feature/RM-6223_CreateUserEventNotDisplayed 2018-04-24 17:22:17 +03:00
Rodica Sutu
9c1c934d14 add support for writing tests via API for Audit
simple test for checking the create user event is audited
2018-04-24 17:21:27 +03:00
Tom Page
4dc86b420d RM-5236 Audit user group events.
Add audit events for user group creation and deletion.

Also update the create user event so that the username is still displayed after the user is deleted.
2018-04-24 10:41:06 +01:00
Tom Page
9a8cc02e51 RM-5236 Audit events for creating and deleting a user group. 2018-04-24 08:45:56 +01:00
Rodica Sutu
13c4b4c4ae Merge branch 'feature/RM-6223_AuditCreateUserEvent' into 'master'
Fix for RM-6223 Create User Event  not displayed in Audit Logs

See merge request records-management/records-management!963
2018-04-24 08:40:49 +01:00
Rodica Sutu
68433857c7 integration test for create user event 2018-04-23 17:39:13 +03:00
gbroadbent
1744dacdc9 DUTCH: Updated Dutch bundle based on EN-RM-rev2018-04-12T100714 2018-04-23 14:47:52 +01:00
Rodica Sutu
9b28e44fa1 check if the node is rm specific; 2018-04-23 16:38:24 +03:00
gbroadbent
5781d71c8f BRAZILIAN PORTUGUESE: Updated Brazilian Portuguese bundle based on EN-RM-rev2018-04-12T100714 2018-04-20 10:33:46 +01:00
gbroadbent
291e29c4bd RUSSIAN: Updated Russian bundle based on EN-RM-rev2018-04-12T100714 2018-04-20 10:32:38 +01:00
gbroadbent
dc3d239ca0 NORWEGIAN BOKMAL: Updated Norwegian bundle based on EN-RM-rev2018-04-12T100714 2018-04-20 10:31:49 +01:00
gbroadbent
780d0c152f JAPANESE: Updated Japanese bundle based on EN-RM-rev2018-04-12T100714 2018-04-20 10:30:54 +01:00
gbroadbent
4eff64617d ITALIAN: Updated Italian bundle based on EN-RM-rev2018-04-12T100714 2018-04-20 10:20:21 +01:00
gbroadbent
77e63fce4c SPANISH: Updated Spanish bundle based on EN-RM-rev2018-04-12T100714 2018-04-20 10:19:24 +01:00
gbroadbent
2205284f3f GERMAN: Updated German bundle based on EN-RM-rev2018-04-12T100714 2018-04-20 10:17:11 +01:00
gbroadbent
62fab7bfe3 SIMPLIFIED CHINESE: Updated bundle based on EN-RM-rev2018-04-12T100714 2018-04-17 15:49:50 +01:00
gbroadbent
d5fcb3ef99 FRENCH: Updated French bundle based on EN-RM-rev2018-04-12T100714 2018-04-17 10:40:12 +01:00
Rashmi Itagi
efd1b237f2 Merge branch 'feature/RM-6249_SkipNodesWithExemptions_sm' into 'master'
RM-6249 Don't update the declassification date of nodes with exemptions.

See merge request records-management/records-management!937
2018-04-12 09:46:14 +01:00
Claudia Agache
3f6f1939aa Merge branch 'feature/RM-2053_ClassificationCapability_UI_tests' into 'master'
RM-2053 Classification Capability UI tests

See merge request records-management/records-management!958
2018-04-12 09:19:01 +01:00
cagache
fb2e857d02 applied code review changes 2018-04-12 11:18:17 +03:00
Rodica Sutu
71b5fa7556 Merge branch 'feature/RM-6245_AutomateAcForCategoryId_fp' into 'master'
RM-6245 Tests for Add Record Category Identifier to Record Search Results

See merge request records-management/records-management!959
2018-04-12 07:15:23 +01:00
Rodica Sutu
ffdaf407aa Merge remote-tracking branch 'remotes/origin/master' into feature/RM-6245_AutomateAcForCategoryId_fp 2018-04-12 09:12:42 +03:00
Ross Gale
321d424d40 Merge branch 'feature/RM-6137_AddCategoryIdToSearch' into 'master'
RM-6137 Add record category identifier to search

See merge request records-management/records-management!956
2018-04-11 18:06:17 +01:00
Ross Gale
09ebad77d1 remove unused field from test 2018-04-11 18:06:01 +01:00
Rodica Sutu
df78730461 Merge remote-tracking branch 'remotes/origin/master' into feature/RM-6245_AutomateAcForCategoryId_fp 2018-04-11 16:14:43 +03:00
Ross Gale
44bed4a796 RM-6137 Add record category identifier to search changes added 2018-04-10 17:11:26 +01:00
cagache
25feb9d5bb Merge remote-tracking branch 'remotes/origin/feature/RM-6171_ViewClassifyAction' into feature/RM-2053_ClassificationCapability_UI_tests 2018-04-05 13:48:00 +03:00
cagache
8a5746993c RM-2053 UI tests for Manage Record Classification capability 2018-04-05 13:47:25 +03:00
Roxana Lucanu-Ghetu
7795d3d8b0 RM-6171 Fix to display classify action from a collaboration site. 2018-04-05 11:52:20 +03:00
cagache
91f810e7e8 Merge remote-tracking branch 'remotes/origin/feature/RM-6171_ViewClassifyAction' into feature/RM-2053_ClassificationCapability_UI_tests 2018-04-04 17:19:10 +03:00
Roxana Lucanu-Ghetu
ddcfe2e8c7 RM-6171 Added restrictions for displaying classify option. 2018-04-04 15:16:18 +03:00
Claudia Agache
e690c80906 Merge branch 'feature/RM_2053_ClassificationCapability_fixTests' into 'feature/RM-2053_ClassificationCapability'
RM-2053 Fix rest api tests affected by new capability

See merge request records-management/records-management!947
2018-04-03 13:42:32 +01:00
cagache
608dfc066c RM-2053 UI tests for Manage Record Classification capability 2018-04-03 09:21:03 +03:00
Rodica Sutu
eae3fd403a Merge branch 'feature/RM-2004_ExemptionCapability' into 'master'
Create an "Add Declassification Exemptions" capability

See merge request records-management/records-management!926
2018-04-02 15:51:07 +01:00
cagache
aa6d0b3ceb Merge remote-tracking branch 'remotes/origin/feature/RM-2004_ExemptionCapabilityFixTests' into feature/RM_2053_ClassificationCapability_fixTests 2018-03-30 14:18:26 +03:00
Rodica Sutu
18cf69b56e changes after review 2018-03-30 09:53:43 +03:00
Rodica Sutu
4a10ded602 Merge remote-tracking branch 'remotes/origin/feature/RM-2004_ExemptionCapability' into feature/RM-2004_ExemptionCapabilityFixTests 2018-03-29 21:01:02 +03:00
Rodica Sutu
1075455457 changes to cover review;
remove unnecessary changes
move the capability check a bit earlier in the classification process
2018-03-29 12:27:10 +03:00
Rodica Sutu
38dd584839 changes to cover review;
remove unnecessary changes
move the capability check a bit earlier in the classification process
2018-03-28 23:14:11 +03:00
cagache
1054fcef62 RM-2053 Fix tests affected by the new Manage Record Classification capability 2018-03-28 17:11:06 +03:00
Rodica Sutu
8d5b2f785d change the list of capabilities into a set 2018-03-28 12:16:31 +03:00
Rodica Sutu
419484719c change the UserRoles.java to a enum
add the within RoleService a utility method to add/remove list of capabilities from a ROLE
2018-03-27 21:14:21 +03:00
Rodica Sutu
ba1e480536 Merge branch 'remotes/origin/master' into feature/RM-2004_ExemptionCapability
# Conflicts:
#	rm-automation/rm-automation-enterprise-rest-api/src/main/java/org/alfresco/rest/rm/enterprise/core/ClassificationData.java
#	rm-enterprise/rm-enterprise-repo/src/main/amp/config/alfresco/module/alfresco-rm-enterprise-repo/messages/classified-content/classified-content.properties
#	rm-enterprise/rm-enterprise-repo/src/main/amp/config/alfresco/module/alfresco-rm-enterprise-repo/model/recordsPermissionModel.xml
#	rm-enterprise/rm-enterprise-repo/src/main/amp/config/alfresco/module/alfresco-rm-enterprise-repo/security/rm-default-roles-bootstrap.json
2018-03-27 18:07:08 +03:00
Tom Page
e85914c857 RM-6249 Don't update the declassification date of nodes with exemptions. 2018-03-27 15:29:16 +01:00
Roxana Lucanu-Ghetu
9080fc7976 RM-2053 Added classification capability restriction to classify action. Code review changes. 2018-03-27 01:25:49 +03:00
Rodica Sutu
9671416fd5 Merge branch 'feature/RM-5235_Audit_DeleteUser' into 'master'
RM-5235_Audit_DeleteUser

See merge request records-management/records-management!925
2018-03-24 15:56:19 +00:00
Ross Gale
132b301d8e RM-2004 adding in changes for AddDeclassificationExemption capability. A user can only add an exemption if they have the capability, this includes appling classification guides 2018-03-23 16:00:08 +00:00
Rodica Sutu
b537bf6804 minor java docs update 2018-03-23 17:31:02 +02:00
Rodica Sutu
9d6bdeaa8b review changes 2018-03-23 17:28:21 +02:00
Rodica Sutu
d009244189 test to cover the audit event for user deletion 2018-03-23 08:59:29 +02:00
cagache
490c7d9954 Merge branch 'master' into feature/RM-6167_RequestRecalculation_API_tests_no 2018-03-22 17:22:21 +02:00
Rodica Sutu
07d494f165 Merge remote-tracking branch 'remotes/origin/master' into xperimental/RM-5235_Audit_DeleteUser 2018-03-21 23:07:22 +02:00
Rodica Sutu
da54db41c7 audit the properties specific to cm:person before deleting the node in order to provide information about the delete user 2018-03-21 23:06:48 +02:00
cagache
cb449f532b moved createRMSite from a test class to base class 2018-03-21 15:00:50 +02:00
Sara Aspery
ec094f8e98 Merge branch 'feature/RM-6107__ViewAndAddExemptionUI_sm' into 'master'
RM-6107 View and Add Exemption UI

See merge request records-management/records-management!872
2018-03-21 09:18:29 +00:00
Rodica Sutu
94581b56fa audit the delete person event on beforeDeleteNode 2018-03-20 21:52:25 +02:00
Ross Gale
a8be3bdc96 RM-2004 adding update to use enterprise files for all besides recordsPermissionModel 2018-03-20 16:52:39 +00:00
Rodica Sutu
f658688783 audit the cm:person beforeDeleteNode 2018-03-20 08:49:04 +02:00
Rodica Sutu
d40accb9af Merge branch 'feature/RM-6151RemoveExemptionUITests_sm' into 'feature/RM-6107__ViewAndAddExemptionUI_sm'
RM-6151 RemoveExemptionUITests_sm

See merge request records-management/records-management!897
2018-03-14 07:06:04 +00:00
Ross Gale
6dac611ab1 RM-2004 initial commit of capability 2018-03-13 10:26:05 +00:00
Rodica Sutu
99f32e08e2 Merge remote-tracking branch 'remotes/origin/feature/RM-6106_ViewAddExemptions_Automate_AC' into feature/RM-6151RemoveExemptionUITests_sm
# Conflicts:
#	rm-automation/rm-automation-ui/src/main/java/org/alfresco/po/share/console/securitycontrols/DeclassificationExemptionsPanel.java
#	rm-automation/rm-automation-ui/src/test/java/org/alfresco/test/enterprise/level2/filePlan/ManagePermissionsTests.java
#	rm-automation/rm-automation-ui/src/test/java/org/alfresco/test/enterprise/security/configuration/AddAndViewDeclassificationExemptionsTests.java
#	rm-enterprise/rm-enterprise-share/src/main/amp/config/alfresco/site-webscripts/org/alfresco/components/console/classification/security-groups.get.properties
2018-03-09 10:18:08 +02:00
Tom Page
6ebb19abef Merge branch 'feature/RM-6129_ManageClassifCapTests_no' into 'master'
RM-6129 Create new API test methods to interact with RM roles

See merge request records-management/records-management!882
2018-03-06 12:58:42 +00:00
cagache
0378205a68 swapped expected status code with actual status code (fix for expected:<500> but was:<200>) 2018-03-06 09:10:12 +02:00
Rodica Sutu
08d409b554 Merge branch 'feature/RM-6106_ViewAddExemptions_Automate_AC' of git.alfresco.com:records-management/records-management into feature/RM-6106_ViewAddExemptions_Automate_AC
# Conflicts:
#	rm-automation/rm-automation-ui/src/test/java/org/alfresco/test/community/level2/disposition_schedule/DispositionScheduleLinkedRecords.java
2018-03-05 15:37:40 +02:00
jcule
48f98f56ec Merge branch 'master' into feature/RM-6106_ViewAddExemptions_Automate_AC 2018-03-05 13:29:24 +00:00
Rodica Sutu
5e23cf092c Revert "Revert "Merge branch 'feature/RM-6107__ViewAndAddExemptionUI_sm' into…""
This reverts commit e9beac0144.
2018-03-05 15:29:05 +02:00
Claudia Agache
e75852d30c Merge branch 'feature/RM-6125_UserWarnDeclassificationDateTests_sm' into 'master'
RM-5296 Automated tests for the Declassification Date exceeds Time Frame warning

See merge request records-management/records-management!875
2018-03-05 07:24:01 +00:00
Tom Page
d35ca27ab8 RM-6129 Use roles from UserRoles. 2018-03-02 15:58:49 +00:00
Tom Page
16fafb4262 RM-6129 Add API tests for creating and editing RM roles. 2018-03-02 13:32:04 +00:00
Tom Page
2faf6dbff6 RM-6125 More useful builder for creating RM site.
Add a private constructor so that Lombok will generate a builder
including the site title and description (which come from a
superclass).
2018-03-02 09:24:28 +00:00
Jelena Cule
e9beac0144 Revert "Merge branch 'feature/RM-6107__ViewAndAddExemptionUI_sm' into…"
This reverts merge request !877
2018-03-01 22:37:45 +00:00
cagache
ee748e3b68 RM-5296 Warn When Declassification Date exceeds Time Frame 2018-03-01 10:45:19 +02:00
Tom Page
d22362e3c3 RM-6129 Add test for capabilities of the RM user. 2018-02-28 16:26:27 +00:00
Tom Page
48b26d6b22 RM-6129 Add test for pre-configured RM roles. 2018-02-28 16:00:34 +00:00
Rodica Sutu
3e99d756a3 Merge branch 'merge/RM-6069_MergeFrom2.6ToMaster' into 'master'
RM-6069_MergeFrom2.5ToMaster

See merge request records-management/records-management!869
2018-02-28 13:16:06 +00:00
Rodica Sutu
9e96d0772b Merge remote-tracking branch 'remotes/origin/release/V2.6' into merge/RM-6069_MergeFrom2.6ToMaster 2018-02-27 17:20:46 +02:00
Rodica Sutu
aacbc4b1b0 Merge branch 'merge-2.6/FixesFrom2.5' into 'release/V2.6'
RM-6069 : Merge from 2.5 to 2.6

See merge request records-management/records-management!864
2018-02-27 15:13:21 +00:00
Rodica Sutu
7b7948ccb4 Merge branch 'merge-2.6/FixesFrom2.5' into merge/RM-6069_MergeFrom2.6ToMaster
# Conflicts:
#	rm-automation/rm-automation-ui/src/main/java/org/alfresco/po/rm/dialog/AuthoritySelectDialog.java
#	rm-automation/rm-automation-ui/src/main/java/org/alfresco/po/share/page/SharePage.java
#	rm-automation/rm-automation-ui/src/test/java/org/alfresco/test/community/level2/disposition_schedule/DispositionScheduleLinkedRecords.java
#	rm-automation/rm-automation-ui/src/test/java/org/alfresco/test/enterprise/security/classification/content/ClassifyRecord.java
#	rm-automation/rm-automation-ui/src/test/resources/smokeTests.xml
#	rm-automation/rm-automation-ui/src/test/resources/testng.xml
2018-02-27 15:35:44 +02:00
Rodica Sutu
9656a7d4c6 Merge remote-tracking branch 'origin/release/V2.5' into merge-2.6/FixesFrom2.5 2018-02-27 08:46:23 +02:00
alfresco-build
9385959ed9 [maven-release-plugin] prepare for next development iteration 2018-02-26 15:02:28 +00:00
alfresco-build
ec18a96609 [maven-release-plugin] prepare release V2.5.3 2018-02-26 15:02:26 +00:00
Rodica Sutu
26c9d97dcb Merge branch 'release/V2.5' into merge-2.6/FixesFrom2.5
# Conflicts:
#	rm-automation/pom.xml
#	rm-automation/rm-automation-ui/src/test/java/org/alfresco/test/community/level2/disposition_schedule/DispositionScheduleLinkedRecords.java
#	rm-automation/rm-automation-ui/src/test/java/org/alfresco/test/enterprise/level2/classification/DeleteFolderInUnfiledRecordsAndFilePlan.java
#	rm-automation/rm-automation-ui/src/test/java/org/alfresco/test/enterprise/level2/classification/SecurityMarksOnContent.java
#	rm-automation/rm-automation-ui/src/test/java/org/alfresco/test/enterprise/security/classification/content/ClassifyRecord.java
#	rm-automation/rm-automation-ui/src/test/resources/smokeTests.xml
#	rm-automation/src/test/resources/classificationTests.xml
#	rm-automation/src/test/resources/level2Tests.xml
2018-02-26 14:09:40 +02:00
Rodica Sutu
8c680d4d63 Merge branch 'feature-2.5/RM-6093_FixTestExecutionOrder' into 'release/V2.5'
RM-6093 fix for running the method on test classes in a succession instead of interleaved

See merge request records-management/records-management!855
2018-02-26 07:44:32 +00:00
Rodica Sutu
d11efb8c77 Merge remote-tracking branch 'remotes/origin/release/V2.5' into merge-2.6/FixesFrom2.5
# Conflicts:
#	rm-automation/pom.xml
#	rm-automation/rm-automation-ui/src/test/java/org/alfresco/test/BaseTest.java
#	rm-automation/rm-automation-ui/src/test/java/org/alfresco/test/DataPrepHelper.java
#	rm-automation/rm-automation-ui/src/test/java/org/alfresco/test/community/smoke/CreateRMSite.java
#	rm-automation/rm-automation-ui/src/test/java/org/alfresco/test/community/smoke/InplaceRecordSearch.java
#	rm-automation/rm-automation-ui/src/test/java/org/alfresco/test/enterprise/level2/classification/SecurityMarksOnContent.java
#	rm-automation/rm-automation-ui/src/test/java/org/alfresco/test/enterprise/security/classification/content/SearchClassifiedRecords.java
#	rm-automation/src/test/java/org/alfresco/apiTesting/BaseApi.java
#	rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/model/rma/type/RmSiteType.java
#	rm-enterprise/pom.xml
2018-02-24 21:48:16 +02:00
Rodica Sutu
bada7c2438 another attempt to fix running the test execution order 2018-02-22 23:20:27 +02:00
Rodica Sutu
46cf88b223 Merge branch 'release/V2.5' of git.alfresco.com:records-management/records-management into feature-2.5/RM-6093_FixTestExecutionOrder
# Conflicts:
#	rm-automation/src/test/java/org/alfresco/test/community/smoke/InplaceRecordSearch.java
2018-02-22 10:12:01 +02:00
Rodica Sutu
1fe8242944 attempt (2) to fix running the test methods in different classes interleaved 2018-02-21 22:57:16 +02:00
Rodica Sutu
2a42637ed7 Merge branch 'feature-2.5/MNT-19114_TestForCreateWikiPage' into 'release/V2.5'
MNT-19114 Test

See merge request records-management/records-management!856
2018-02-21 17:21:25 +00:00
Rodica Sutu
194928c0da upgrade the dataPrep dependency
add a simple test to cover create wiki page issue (MNT-19117)
2018-02-20 22:52:34 +02:00
alfresco-build
0e869a735f [maven-release-plugin] prepare for next development iteration 2018-02-19 14:24:52 +00:00
alfresco-build
5d80268501 [maven-release-plugin] prepare release V2.7-EA2 2018-02-19 14:24:50 +00:00
Elena Hardon
f1e3c0b853 MNT-19114 - Made review changes 2018-02-19 13:40:52 +02:00
Tom Page
a1c9dbc505 Merge branch 'feature/RM-6080_ClassifyRecordFoldersAndCategoriesTests_sm' into 'feature/v2.7EA1'
RM-6080 Check that cleared rm users with filling permissions on a category can classify with children the category or the record folder

See merge request records-management/records-management!843
2018-02-19 08:35:48 +00:00
Elena Hardon
b581d58726 MNT-19114: Removed unused comments 2018-02-16 16:08:18 +02:00
Elena Hardon
0da89c011c MNT-19114 - Added integration test which shows that wiki pages can now be created as immediate folder type children under RM site 2018-02-16 16:07:18 +02:00
Tom Page
96e3b8d1b2 RM-6080 Use system user to handle metadata node.
This allows an rm admin user to classify record folders and their children.
2018-02-16 11:10:17 +00:00
Elena Hardon
e1b24791be RM-19114: Removed the condition on creating only 2 folder-types from root and modified the unit test that was checking this
(cherry picked from commit af108af09125ed3da3e6ff6673434c3b045469a2)

# Conflicts:
#	rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/model/rma/type/RmSiteType.java
#	rm-community/rm-community-repo/unit-test/java/org/alfresco/module/org_alfresco_module_rm/model/rma/type/RmSiteTypeUnitTest.java
2018-02-15 20:47:38 +02:00
alfresco-build
cbfa402a24 [maven-release-plugin] prepare for next development iteration 2018-02-14 15:59:52 +00:00
alfresco-build
50091181f3 [maven-release-plugin] prepare release V2.7-EA1 2018-02-14 15:59:50 +00:00
Tom Page
fb87586fa1 Remove tag from scm management. 2018-02-14 15:41:21 +00:00
Sara Aspery
e5d42ac653 Merge branch 'feature/RM-6040_HighestChildClassificationAllowsNonContainer_sm' into 'master'
Resolve External Issue

See merge request records-management/records-management!834
2018-02-09 16:10:17 +00:00
Sara Aspery
2c0133d0a2 Merge branch 'master' into 'feature/RM-6040_HighestChildClassificationAllowsNonContainer_sm'
# Conflicts:
#   rm-enterprise/rm-enterprise-repo/src/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/classification/HighestClassificationFromImmediateChildrenTest.java
2018-02-09 10:13:01 +00:00
Sara Aspery
6d1b54d23d RM-6040 Fix Highest Classified Child for non-container 2018-02-09 09:58:53 +00:00
Rodica Sutu
fa973b90f7 Merge branch 'feature/fix_continueSuiteToRun' into 'master'
Fix for stopping the suite of tests to run if @Before/@After fails

See merge request records-management/records-management!830
2018-02-09 07:48:21 +00:00
Rodica Sutu
9b9dce1db2 update the suite of tests with configfailurepolicy="continue" 2018-02-08 15:51:24 +02:00
gbroadbent
29933615d3 JAPANESE: Updated bundle based on EN-rev2018-02-07 2018-02-08 12:36:52 +00:00
gbroadbent
a357526160 SPANISH: Updated bundle based on EN-rev2018-02-07 2018-02-08 12:33:57 +00:00
Sara Aspery
4bdcbd68b7 Merge branch 'feature/RM-6008_HighestClassificationRestApi_no' into 'master'
RM-6008 - Highest Child Classification Rest Api

See merge request records-management/records-management!813
2018-02-05 19:34:28 +00:00
Roxana Lucanu-Ghetu
46e56fa7a4 RM-5733 Removed unused parameter allowContextFromAsOf. 2018-02-04 21:52:46 +02:00
Roxana Lucanu-Ghetu
4c42b2cdf6 RM-5733 Changed the way retention as of date is calculated. 2018-02-02 16:11:38 +02:00
Sara Aspery
5c17f76656 RM-6008 Highest child classification Rest API 2018-02-02 10:52:28 +00:00
Sara Aspery
72b4fc4011 Merge branch 'feature/RM-5987_ViewFullAuditLogCanCrashAlfresco' into 'master'
RM-5987 View Audit Log can crash Alfresco

See merge request records-management/records-management!788
2018-02-01 09:10:12 +00:00
Rodica Sutu
06974177a5 Merge branch 'feature/RM-6007_highestClassificationLevelApiDevelopment_sm' into 'master'
RM-6007 - Added method to find the highest classification level seen by an user in a folder

See merge request records-management/records-management!798
2018-01-30 15:21:12 +00:00
Sara Aspery
cdf68bc39e RM-5987 View Audit Log - removed spring default 2018-01-30 11:50:06 +00:00
Rodica Sutu
2f104e9215 minor updates for getHighestClassificationLevelFromImmediateChildren() implementation
unit tests & integration tests created
2018-01-29 18:16:15 +02:00
Rodica Sutu
1c222cddf6 Merge branch 'feature/RM-6006_SQL_Query' into 'master'
feature/RM-6006_SQL_Query

See merge request records-management/records-management!794
2018-01-29 08:10:56 +00:00
Rodica Sutu
0dfc32fc15 review updates - minor formatting, update java docs 2018-01-29 09:29:08 +02:00
Rodica Sutu
0167d75c44 updates after review:
update the getChildrenPropertyValues return type
update the existing tests from RecordsManagementQueryDAOImplTest that test getChildrenPropertyValues() method
2018-01-26 16:48:38 +02:00
Rodica Sutu
245ffee3e0 modify the hasChildrenWithPropertyValues to getChildrenPropertyValues in order to return the query result
update the implementation where the modified method is used
update tests
2018-01-26 10:57:49 +02:00
Sara Aspery
69439bb3d8 RM-5987 changes from review 2018-01-26 07:11:20 +00:00
Rodica Sutu
0de2737529 change the old query select_CountChildrenWithPropertyValues to return the list of distinct property values from children
update the implementation were the updated query is used
2018-01-24 15:22:10 +02:00
Sara Aspery
d466e29dbc RM-5987 use Spring to hold max entries default 2018-01-24 09:08:09 +00:00
Sara Aspery
c748b65cd9 RM-5987 View Audit Log can crash Alfresco 2018-01-23 17:59:41 +00:00
Tom Page
0393f338ec Merge branch 'feature/TimeZoneFixUnitTest_no' into 'master'
Revert changes to getStartOfDay.

See merge request records-management/records-management!780
2018-01-19 08:14:25 +00:00
Sara Aspery
55472663ba Merge branch 'feature/RM-5927_v20PatchesRunWhenV22Upgrade' into 'master'
RM-5927 Add appliesToVersion to v20 v21 patches

See merge request records-management/records-management!764
2018-01-18 15:36:41 +00:00
Tom Page
0a54487bcf Revert changes to getStartOfDay.
Sonar suggested using the Java 8 method Instant.truncatedTo, as it is faster than
DateUtils.truncate. However it has different handling of TimeZones, and the old
version of this code only works when the server is set to use UTC. In order to fix
this 'properly' we need code like:
  date = (date == null ? new Date() : date);
  return Date.from(date.toInstant().atZone(ZoneId.systemDefault()).truncatedTo(ChronoUnit.DAYS).toInstant());
which is significantly less readable than just using DateUtils.truncate. Given that
this code hasn't ever been highlighted by our profiling, I suggest we revert back
to the older code.
2018-01-18 16:13:20 +01:00
Sara Aspery
16d7e961de RM-5927 Changes from review 2018-01-18 11:41:02 +00:00
cagache
398f8079fe automated test cases for edit classification sources 2018-01-18 10:12:48 +02:00
Sara Aspery
b1c33ab9a4 RM-5927 Check installed vs current version 2018-01-18 02:58:38 +00:00
cagache
e13ef5e0ae revert last change 2018-01-17 13:05:54 +02:00
cagache
a4167525a2 updated selectors based on review 2018-01-17 13:01:56 +02:00
Sara Aspery
1d144c612b RM-5927 Check version nbrs and remove appliesTo 2018-01-17 06:47:24 +00:00
Tom Page
b18561e81e Merge release/V2.6 into master. 2018-01-16 13:14:22 +00:00
Tom Page
0268299006 Updating license header to 2018 2018-01-16 12:31:06 +00:00
Tom Page
4d727df4e1 Record-only merge V2.6.0.x into V2.6 2018-01-16 12:26:25 +00:00
Tom Page
016b22d6cf Record-only merge V2.5 into V2.6 2018-01-16 12:21:25 +00:00
Tom Page
350a198837 Updating license header to 2018 2018-01-16 12:21:10 +00:00
Tom Page
140ae18493 Record-only merge V2.5.2.x into V2.5 2018-01-16 12:17:24 +00:00
Tom Page
3fe056004f Updating license header to 2018 2018-01-16 12:17:11 +00:00
Tom Page
651140302f Record-only merge V2.5.1.x into V2.5 2018-01-16 12:13:26 +00:00
Tom Page
1ec820ba4d Updating license header to 2018 2018-01-16 12:13:12 +00:00
Tom Page
4378cd3d61 Record-only merge V2.5.0.x into V2.5 2018-01-16 12:09:35 +00:00
Tom Page
3f3d284423 Updating license header to 2018 2018-01-16 12:09:20 +00:00
Tom Page
3a104ac1b7 Record-only merge V2.4 into V2.5 2018-01-16 12:05:53 +00:00
Tom Page
98d7e4aed4 Updating license header to 2018 2018-01-16 12:05:38 +00:00
Tom Page
332173a85c Record-only merge V2.4.0.x into V2.4 2018-01-16 12:02:53 +00:00
Tom Page
1718a77c9c Updating license header to 2018 2018-01-16 12:02:40 +00:00
Tom Page
f69b4f2258 Merge branch 'feature/VariousSonarFixes' into 'master'
Various fixes based on issues found by Sonar

See merge request records-management/records-management!773
2018-01-15 15:49:27 +00:00
Sara Aspery
72cf9d05ee RM-5927 Fix v21 appliesFromVersion to 2.0 2018-01-13 01:01:54 +00:00
Tom Page
9becfe79a5 Add debug log message if exceptions are swallowed.
Fix a couple of minor issues in DynamicAuthoritiesGet webscript.
2018-01-12 15:25:56 +00:00
Tom Page
db4871fd8d Replace a few RuntimeExceptions with AlfrescoRuntimeExceptions. 2018-01-12 14:54:51 +00:00
Tom Page
20edcae7c4 A couple of minor fixes.
Fix method signature to refer to the precise exception thrown.

Use Instant from Java 8 rather than DateUtils.truncate.
2018-01-12 14:13:05 +00:00
Brian Remmington
4fc3b718c1 RM-5996: Removed empty pages for clarity. 2018-01-12 09:03:46 +00:00
Sara Aspery
d7a0a34b53 RM-5927 Fix appliesToVersion to 2.0.999 2018-01-11 14:57:33 +00:00
Sara Aspery
c5fdf205f8 RM-5927 Fix appliesToVersion to 2.x.999 2018-01-11 14:56:34 +00:00
Brian Remmington
e5eff8669e RM-5996: Added component diagram to the overview page. 2018-01-11 13:29:13 +00:00
Brian Remmington
7ca167df57 RM-5996: Removed design docs for security marks and content classification from the community code. 2018-01-11 13:16:41 +00:00
Brian Remmington
322c48600c A fairly dumb initial copy of RM-related design information from the Architecture Map 2018-01-11 12:23:09 +00:00
Tom Page
be45b4ba37 Simplify inequality check as suggested in code review. 2018-01-08 08:34:42 +00:00
Tom Page
dbc57451ed Fix some issues raised by Sonar.
Avoid NPE if calculateListOfEmptyFolders returns null in ScheduleXRecordLoaders.

Fix equals method of a few classes to check against the other instance.

Make synchonisation consistent in AppliedSourceServiceImpl and also remove a
redundant null check.

Use Arrays.toString to make a more readable string representation of an array.

Combine a few if statement branches that do the same thing.
2018-01-05 16:19:33 +00:00
Sara Aspery
4972188311 RM-5927 Add appliesToVersion to v20 v21 patches 2018-01-05 11:41:19 +00:00
Jelena Cule
6825040016 Merge branch 'feature/RM-5917_ClassificationSourceReference_API_TESTS_2' into 'master'
Merge RM-5917 ClassificationSourceReference API TESTS to master

See merge request records-management/records-management!731
2018-01-05 10:41:35 +00:00
Jelena Cule
c24ee2ec0f Merge RM-5917 ClassificationSourceReference API TESTS to master 2018-01-05 10:41:35 +00:00
Tom Page
d46ff0b2dd Merge branch 'feature/RM-5344_DODAuditQuery_fp' into 'master'
RM-5344 Only gather DOD audit entries if there is a DOD RM site.

See merge request records-management/records-management!759
2018-01-05 08:19:57 +00:00
Tom Page
77b5d35685 RM-5344 Handle case where site with id "rm" doesn't exist.
This is not possible normally, but it does happen with the integration tests.

Also fix some whitespace in the test class.
2018-01-04 14:38:57 +00:00
Tom Page
29e00d1ec2 RM-5344 Only gather DOD audit entries if there is a DOD RM site.
This creates an edge case where DOD audit entries are no longer displayed
if a DOD RM site is deleted and then a standard RM site is created to
replace it. However this seems like an unlikely use case, and there is a
workaround of exporting the audit log before deleting the DOD RM site.

Two audit queries are still made for DOD RM sites because DOD sites cause
some standard audit entries to be created (e.g. the holds container
created event, etc.).
2018-01-04 12:08:01 +00:00
Elena Hardon
d7088d1a29 Merge branch 'feature/RM-5225_AppendUniqueIdToRecordOnCopyToAction_fp' into 'master'
Solved issue and added integration test

See merge request records-management/records-management!755
2018-01-04 08:56:54 +00:00
Elena Hardon
4540456eb8 RM-5970 - Added javadoc on the class and repaired typo 2018-01-03 16:05:40 +02:00
Elena Hardon
1cb87e7d6c Merge branch 'master' into feature/RM-5225_AppendUniqueIdToRecordOnCopyToAction_fp 2018-01-03 12:13:53 +02:00
Ana Bozianu
9ab406504e Merge branch 'feature/UpdateHeadersTo2018' into 'master'
update headers to 2018

See merge request records-management/records-management!756
2018-01-03 10:12:16 +00:00
Elena Hardon
19dc1d9c55 RM-5970 - Added header for the integration test for copy to action 2018-01-03 12:10:20 +02:00
Ana Manolache
f908442af2 update headers to 2018 2018-01-03 12:01:00 +02:00
Elena Hardon
94594d0b15 RM-5970 - Added integration test for copy to action 2017-12-27 13:15:13 +02:00
Elena Hardon
5fd6602038 RM-5970 - Removed onCopyComplete method from RecordComponentIdentifierAspect because it was overwriting the existing unique id for a record on copy to action 2017-12-21 10:58:30 +02:00
Tom Page
a0e770052b Merge release/V2.6 into master. 2017-12-19 10:27:34 +00:00
Tom Page
01961c2382 Merge release/V2.5 into release/V2.6. 2017-12-19 10:26:22 +00:00
Tom Page
ebfee294df Merge release/V2.5.2.x into release/V2.5. 2017-12-19 10:20:48 +00:00
Tom Page
81d3e9e322 Revert community pom change "Fix h2scripts version..."
This partially reverts commit 1707339d68.
2017-12-18 15:24:36 +00:00
alfresco-build
49b5218b6f [maven-release-plugin] prepare for next development iteration 2017-12-15 16:59:26 +00:00
alfresco-build
6d75cdcab6 [maven-release-plugin] prepare release V2.5.2.1 2017-12-15 16:59:24 +00:00
Sara Aspery
6c5ba7f7ca Merge branch 'hotfix-2.5/MNT-18771­PublishJobUpgradeError' into 'release/V2.5.2.x'
MNT-18771 Publish Job Upgrade Error

See merge request records-management/records-management!745
2017-12-14 14:24:03 +00:00
cagache
a66de5c3e9 Merge remote-tracking branch 'origin/release/v2.6' 2017-12-13 10:01:14 +02:00
cagache
2e5c4f94a9 Merge remote-tracking branch 'origin/release/v2.5' into release/V2.6 2017-12-13 09:53:02 +02:00
cagache
2826521209 Merge branch 'release/V2.6' 2017-12-12 13:23:29 +02:00
cagache
9e498bd8fe updated header 2017-12-12 09:46:06 +02:00
cagache
c8da8c9081 automated AC for MNT-15575, regarding share live search for words from RM Saved Searches
(cherry picked from commit a33cb6e)
2017-12-12 09:32:07 +02:00
Tom Page
06eb2c6ff9 Merge release/V2.5 into release/V2.6. 2017-12-11 15:27:28 +00:00
Ross Gale
88ac5834c9 Merge branch 'release/V2.6' into merge/2.3.2 2017-12-11 15:19:33 +00:00
Ross Gale
6152207725 Merge branch 'merge-2.6/2.3.2' into 'release/V2.6'
merging from 2.5

See merge request records-management/records-management!736
2017-12-11 15:02:42 +00:00
cagache
abbf091bc7 Merge remote-tracking branch 'origin/release/v2.4' into merge-2.5/RM-5882_ShareLiveSearch 2017-12-11 16:01:28 +02:00
Tom Page
51b11d09cf RM-5878 Move live-search.lib.js to the correct place. 2017-12-11 13:35:39 +00:00
cagache
5a5586aab0 automated AC for MNT-15575, regarding share live search for words from RM Saved Searches
(cherry picked from commit a33cb6e)
2017-12-11 13:13:51 +02:00
Tom Page
768a002ca1 RM-5878 Update the live search lib file with the 5.2 version.
Keep the changes to exclude RM saved searches.
2017-12-11 10:50:23 +00:00
Ross Gale
b0cc81fc2c Merge branch 'release/V2.5' into merge-2.6 2017-12-11 10:49:30 +00:00
Tom Page
526f689e64 Merge release/V2.4 into release/V2.5. 2017-12-11 10:44:14 +00:00
Tom Page
3383e4c93f Record-only merge release/V2.3 into release/V2.4. 2017-12-11 10:37:46 +00:00
Tom Page
c9bb15242b Merge commit 'b151bc2' into feature-2.5/SavedSearchMerge. 2017-12-11 10:27:14 +00:00
Tom Page
94d9c75635 Merge branch 'merge-2.4/RM-5878_LiveSearchLib' into 'release/V2.4'
RM-5878 Live Search fix

See merge request records-management/records-management!729
2017-12-11 08:16:25 +00:00
Claudia Agache
5e45c444ac Merge branch 'feature-2.3/RM-5878_ShareLiveSearch' into 'release/V2.3'
Automated test for Share Live Search MNT

See merge request records-management/records-management!721
2017-12-11 07:23:41 +00:00
Richard Smith
0321b5b8d3 RM-5878: Replace ~/slingshot/search/live-search.lib.js in RM to exclude RM specific document types from live search results.
(cherry picked from commit ce1e6fe)
2017-12-09 06:31:30 +02:00
Sara Aspery
defcb53c70 MNT-18771 Publish Job Upgrade Error 2017-12-08 22:10:16 +00:00
Tom Page
5461e9932a Record-only merge release/V2.3 into release/V2.4.
The commits were some changes that were then reverted and the version
update for the release of V2.3.2.
2017-12-08 16:34:11 +00:00
Tom Page
2c6d34d595 Merge release/V2.3 into release/V2.4.
The live-search.lib.js file is unchanged in Share 5.1.
2017-12-08 16:31:18 +00:00
Tom Page
1707339d68 Fix h2scripts version using same method as on master.
Without this change we can no longer start RM using the maven command.
2017-12-08 16:30:05 +00:00
Ross Gale
24f6fedc24 RM-5883 adding updated schema number to ensure patch runs in later upgrades, including break command to ensure patch will only run once 2017-12-08 14:49:47 +00:00
Tom Page
ab3fa87fa1 Merge release/V2.6 into master. 2017-12-08 09:25:53 +00:00
Tom Page
87f69c3e2f Merge branch 'feature-2.6/RM-5132_AutomationChanges' into 'release/V2.6'
RM-5132 Merge automation changes to release/V2.6.

See merge request records-management/records-management!723
2017-12-08 08:34:19 +00:00
Tom Page
48e5a6d852 Merge branch 'merge/RM-5132_AutomationChanges' into 'master'
Merge/rm 5132 automation changes

See merge request records-management/records-management!713
2017-12-08 08:29:05 +00:00
Ana Bozianu
78e9a234f9 Merge branch 'feature/MNT-18502_DODPropertiesOnEMLNodes_no' into 'master'
MNT-18502 - filtered out dod properties if the node is not a dod record

See merge request records-management/records-management!715
2017-12-08 07:53:22 +00:00
Ana Bozianu
3c72bbc0f9 MNT-18502 - filtered out dod properties if the node is not a dod record 2017-12-08 07:53:22 +00:00
Tom Page
b58d04c9c7 Merge release/V2.3 into release/V2.4. 2017-12-07 14:10:45 +00:00
Ross Gale
b151bc26d8 Merge commit '3ce7ed8' into release/V2.4 2017-12-07 14:07:12 +00:00
Tom Page
09cf94d1ad Record-only merge release/V2.3.2.x into release/V2.3. 2017-12-07 12:16:30 +00:00
Tom Page
7abcb683dd Update version to 2.3.2.1-SNAPSHOT. 2017-12-07 09:16:05 +00:00
Tom Page
3ac76ed95e Update version to 2.3.3-SNAPSHOT. 2017-12-07 08:37:21 +00:00
Tom Page
b80b1647a3 Update version to 2.3.2. 2017-12-07 08:36:45 +00:00
Ross Gale
a4f55a4a45 Revert "RM-5931 Adding transaction fix for integration test"
This reverts commit 56dc5edfa7
2017-12-06 16:35:06 +00:00
Ross Gale
5804a62855 Revert "RM-5931 Adding transaction fix for integration test"
This reverts commit 826d6e7610
2017-12-06 16:34:49 +00:00
Ross Gale
18c954f4d4 Revert "Merge branch 'release/V2.3' of…"
This reverts commit aed60aad03
2017-12-06 16:34:33 +00:00
Ross Gale
aed60aad03 Merge branch 'release/V2.3' of git.alfresco.com:records-management/records-management into release/V2.3 2017-12-06 15:58:22 +00:00
Ross Gale
826d6e7610 RM-5931 Adding transaction fix for integration test 2017-12-06 15:57:39 +00:00
Tom Page
bee7149e8b Revert "Revert "Update Alfresco dependency to 5.0.4.""
This reverts commit eb935954e9.
2017-12-06 14:40:00 +00:00
Ross Gale
56dc5edfa7 RM-5931 Adding transaction fix for integration test 2017-12-06 14:28:26 +00:00
Ross Gale
ea4b979a5f Merge branch 'release/V2.4' into merge2.5 2017-12-06 11:29:10 +00:00
David Webster
a265daf8f1 Merge branch 'feature/RM-5900-document-extended-permission-service_no' into 'master'
Feature/rm 5900 document extended permission service no

See merge request !700
2017-12-06 10:59:28 +00:00
Ross Gale
7a04ec01af Merge branch 'feature-2.4/MNT-2.4_MERGE' into 'release/V2.4'
RM-5878 mnt changes added to a 2.4 branch

See merge request !717
2017-12-06 10:09:01 +00:00
Richard Smith
ce1e6fe7d2 RM-5878: Replace ~/slingshot/search/live-search.lib.js in RM to exclude RM specific document types from live search results. 2017-12-06 10:04:25 +00:00
David Webster
51a47c56c4 Documentation updates following review 2017-12-06 09:50:50 +00:00
Tom Page
eb935954e9 Revert "Update Alfresco dependency to 5.0.4."
This reverts commit 7164253241.
2017-12-06 09:33:02 +00:00
Ross Gale
c8932192f9 RM-5878 mnt changes added to a 2.4 branch 2017-12-05 16:21:07 +00:00
Tom Page
ca4cf0070f Revert "Revert "Merge branch 'merge-2.6/RM-5132_AutomationChanges' into 'release/V2.6'""
This reverts commit 2437ff415c.
2017-12-05 14:37:07 +00:00
Tom Page
2437ff415c Revert "Merge branch 'merge-2.6/RM-5132_AutomationChanges' into 'release/V2.6'"
This reverts commit 83f81da0bd, reversing
changes made to 915e99394c.
2017-12-05 14:36:38 +00:00
Tom Page
4d6aaff70e Merge release/V2.6 into master. 2017-12-05 10:20:50 +00:00
Tom Page
83f81da0bd Merge branch 'merge-2.6/RM-5132_AutomationChanges' into 'release/V2.6'
Merge 2.6/rm 5132 automation changes

See merge request !710
2017-12-05 10:00:57 +00:00
Tom Page
7164253241 Update Alfresco dependency to 5.0.4. 2017-12-04 14:15:40 +00:00
Ross Gale
3ce7ed8eb9 Merge branch 'feature-2.3/RM-5878_SavedSearchMNT' into 'release/V2.3'
Feature 2.3/rm 5878 saved search mnt

See merge request !705
2017-12-04 12:11:41 +00:00
Tom Page
4f490b4699 RM-5132 Add RecordsAPI.getRecordNodeRef method. 2017-11-30 11:27:17 +00:00
Ross Gale
7eaf1ad76e Merge branch 'feature-2.3/RM-5878_SavedSearchMNT' of git.alfresco.com:records-management/records-management into feature-2.3/RM-5878_SavedSearchMNT 2017-11-30 09:52:51 +00:00
Ross Gale
0ae59951ef RM-5878 removing test scope from testng 2017-11-30 09:52:35 +00:00
Ross Gale
0f5b72599f Update RMv23SavedSearchesPatch.java 2017-11-30 09:28:53 +00:00
Ross Gale
ffe5429927 RM-5878 code review changes 2017-11-29 14:05:39 +00:00
Ross Gale
097f2d848a RM-5878 adding config so patch will run on start up, fixing issue caused by missing maven dependancy for jcommander 1.66 2017-11-28 10:05:36 +00:00
Claudia Agache
9c9f1d6098 Merge branch 'feature/RestApiRefactoring' into 'master'
deleted duplicates and moved some methods from RmEnterpriseTestUtils to specific…

See merge request !697
2017-11-28 07:56:29 +00:00
Ana Bozianu
a36e1773af Merge remote-tracking branch 'origin/merge-2.6/MNT-18793' into merge/MNT-18793 2017-11-27 15:17:16 +02:00
Ana Bozianu
915e99394c Merge remote-tracking branch 'origin/merge-2.5/MNT-18793_to_2.5.x' into merge-2.6/MNT-18793 2017-11-27 15:15:03 +02:00
Ana Bozianu
4fcfdb164e Merge MNT-18793 from release/V2.5.0.x into release/V2.5 2017-11-27 15:09:13 +02:00
Tom Page
c73f5b9863 Use apache commons Pair, rather than javafx.
This makes automated import ordering simpler if nothing else.
2017-11-27 11:22:43 +00:00
alfresco-build
d9b6c0d6f5 [maven-release-plugin] prepare for next development iteration 2017-11-27 10:37:48 +00:00
alfresco-build
020b2a6c38 [maven-release-plugin] prepare release V2.5.0.5 2017-11-27 10:37:45 +00:00
Ana Bozianu
2771022083 Merge branch 'hotfix-2.5/MNT-18793_EligibleActionsNotExecuted' into 'release/V2.5.0.x'
MNT-18793 - added paginated navigation in the disposition action executer

See merge request !699
2017-11-24 14:27:03 +00:00
Ana Bozianu
33af594d47 MNT-18793 - added paginated navigation in the disposition action executer 2017-11-24 14:27:03 +00:00
David Webster
31b4115209 RM-5900: minor link updates 2017-11-24 12:47:03 +00:00
David Webster
a3c5fc26f0 RM-5900: minor link updates 2017-11-24 12:43:35 +00:00
David Webster
d3ba4d89a2 RM-5900: Document Extended Permission Service. 2017-11-24 12:37:49 +00:00
Rodica Sutu
8765349a80 Merge remote-tracking branch 'remotes/origin/hotfix-2.5/MNT-18793_EligibleActionsNotExecuted' into merge-2.5/MNT-18793_to_2.5.x 2017-11-24 09:51:59 +02:00
Ana Bozianu
75469a0f5b MNT-18793 - added paginated navigation in the disposition action executer 2017-11-23 22:21:51 +02:00
Ross Gale
3b8f5a4aa9 RM-5878 add fix and patch for saved search mnt (MNT-15575) 2017-11-23 11:29:23 +00:00
Tom Page
dd2b4aafbf Minor updates to README.md. 2017-11-23 11:12:48 +00:00
Richard Smith
8fd929abec Update reporting email address on CODE_OF_CONDUCT document. 2017-11-23 11:06:06 +00:00
Richard Smith
b882ef25c6 Reformatting README.txt to README.md and adding in a CODE_OF_CONDUCT.md file. 2017-11-23 10:56:33 +00:00
Sara Aspery
0399a7cca9 Merge branch 'feature-2.6/RM-5875_YamlFileUnitTest_no' into 'release/V2.6'
Feature 2.6/rm 5875 yaml file unit test no

See merge request !690
2017-11-22 11:43:07 +00:00
Tom Page
7af2e0430b RM-5875 Manage the version of guava from the root pom.
We'll need to use the regression tests to check that upgrading guava like this
doesn't break anything in the application, but it fixes the unit tests.
2017-11-22 09:10:44 +00:00
Sara Aspery
38a6134ce8 Merge branch 'feature-2.6/RM-5901_SonarIssuesEmptyCollectionTest' into feature/RM-5901_SonarIssuesEmptyCollectionTest 2017-11-20 15:34:28 +00:00
Sara Aspery
7165c0d95e RM-5901 review changes 2017-11-20 15:14:53 +00:00
Sara Aspery
3a1db54876 RM-5875 review changes 2017-11-20 07:39:37 +00:00
Sara Aspery
de4f99d26b RM-5875 add license header 2017-11-17 16:40:07 +00:00
Tom Page
0c49d8a0ea Record-only merge of release/V2.6 into master. 2017-11-17 08:24:18 +00:00
Tom Page
e98bf6e062 Merge release/V2.6.0.x into release/V2.6. 2017-11-17 08:22:33 +00:00
alfresco-build
06e29addce [maven-release-plugin] prepare for next development iteration 2017-11-17 08:05:37 +00:00
alfresco-build
01a818587a [maven-release-plugin] prepare release V2.6.c 2017-11-17 08:05:35 +00:00
Sara Aspery
dd89c7d2f2 RM-5901 fixes in benchmark driver 2017-11-16 18:15:59 +00:00
Sara Aspery
34b863ff16 RM-5901 fixes in community repo 2017-11-16 17:59:02 +00:00
Sara Aspery
1866aaaa49 Merge branch 'release/V2.6' into feature-2.6/RM-5875_YamlFileUnitTest_no 2017-11-16 16:35:08 +00:00
alfresco-build
6a2506847f [maven-release-plugin] prepare for next development iteration 2017-11-16 15:39:00 +00:00
Sara Aspery
797baf833a RM-5875 add Swagger version to exception message 2017-11-16 09:51:13 +00:00
Tom Page
7a83088206 Merge master into RefactorSecurityMark. 2017-11-16 08:57:30 +00:00
Sara Aspery
730f715dc1 RM-5875 fix path and add yaml name to exception 2017-11-15 16:36:13 +00:00
Tom Page
38e6bc80dd Update version to 2.7-SNAPSHOT. 2017-11-15 16:31:44 +00:00
Sara Aspery
4181fe4884 Yaml unit test - split community and enterprise tests 2017-11-14 09:24:48 +00:00
Sara Aspery
956ecce569 Yaml unit test 2017-11-13 15:01:13 +00:00
Tom Page
5b510cafb4 Fix a test that previously failed to create a security mark.
Also refactor an @BeforeClass into an @Test so that if it fails it doesn't
kill all subsequent tests (in all subsequent classes).
2017-11-10 16:35:00 +00:00
Sara Aspery
cbe65842ce Yaml unit test 2017-11-09 11:14:32 +00:00
1153 changed files with 8724 additions and 1854 deletions

73
CODE_OF_CONDUCT.md Normal file
View File

@@ -0,0 +1,73 @@
# Contributor Covenant Code of Conduct
## Our Pledge
In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to making participation in our project and
our community a harassment-free experience for everyone, regardless of age, body
size, disability, ethnicity, gender identity and expression, level of experience,
nationality, personal appearance, race, religion, or sexual identity and
orientation.
## Our Standards
Examples of behavior that contributes to creating a positive environment
include:
* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members
Examples of unacceptable behavior by participants include:
* The use of sexualized language or imagery and unwelcome sexual attention or
advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic
address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
## Our Responsibilities
Project maintainers are responsible for clarifying the standards of acceptable
behavior and are expected to take appropriate and fair corrective action in
response to any instances of unacceptable behavior.
Project maintainers have the right and responsibility to remove, edit, or
reject comments, commits, code, wiki edits, issues, and other contributions
that are not aligned to this Code of Conduct, or to ban temporarily or
permanently any contributor for other behaviors that they deem inappropriate,
threatening, offensive, or harmful.
## Scope
This Code of Conduct applies both within project spaces and in public spaces
when an individual is representing the project or its community. Examples of
representing a project or community include using an official project e-mail
address, posting via an official social media account, or acting as an appointed
representative at an online or offline event. Representation of a project may be
further defined and clarified by project maintainers.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team at katalin.zanaty@alfresco.com. All
complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality with regard to the reporter of an incident.
Further details of specific enforcement policies may be posted separately.
Project maintainers who do not follow or enforce the Code of Conduct in good
faith may face temporary or permanent repercussions as determined by other
members of the project's leadership.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
[homepage]: https://www.contributor-covenant.org

140
README.md Normal file
View File

@@ -0,0 +1,140 @@
# Records Management: README
## Contributing
Please refer to our [How to contribute](/CONTRIBUTING.md) guide and our [Contributor Covenant Code of Conduct](/CODE_OF_CONDUCT.md).
## Configuring and starting Alfresco/Share
* Clone the project (e.g. `git clone git@gitlab.alfresco.com:records-management/records-management.git`)
* Import the project as a maven project
* Start the Alfresco/Share instances with the following commands:
```
mvn clean install -Pstart-repo
mvn clean install -Pstart-share
```
(these commands work best if run from the specific directories, e.g. start Share from
rm-community/rm-community-share/ or rm-enterprise/rm-enterprise-share/ )
## Configuring a different DB other than H2 (e.g. MySQL or PostgreSQL)
* Create a file called _local.properties_ under src/main/resources in alfresco-rm-enterprise-repo
* Add the following properties in this new file
```
my.db.name -> The name of the database schema
my.db.port -> The port number for your database (default port number for postgres is 5432 and for mysql it is 3306)
```
* Run the following commands to start your Alfresco instance:
to start Alfresco (using Postgres):
```
mvn clean install -Pstart-repo,use-postgres
```
to start Alfresco (using MySQL):
```
mvn clean install -Pstart-repo,use-mysql
```
## Technical documentation
Technical documentation is available at [rm-community/documentation/README.md](/rm-community/documentation/README.md) and [rm-enterprise/documentation/README.md](/rm-enterprise/documentation/README.md). This should be particularly useful for anyone wanting to integrate with or extend RM.
## Running integration test
In order to execute the integration tests run the following command (unit tests will be executed every time before you start Alfresco/Share):
```
mvn clean install -Dskip.integrationtests=false
```
## Running UI Automation tests
To run the automated UI tests, change to the rm-automation directory and run:
```
mvn clean install -Dskip.automationtests=false
```
Note: due to Selenium Firefox driver changes, the highest supported Firefox version for UI tests is 43.0.4 (with Selenium 2.52.0).
It is possible to have multiple versions of Firefox installed onto your workstation (e.g. one for running the UI tests and the other, kept
up to date, for everyday browsing) but beware Firefox auto-updates. In this scenario the best approach is to create a non-default profile
(default profiles will be shared between your Firefox installations!) for which auto-updates are disabled and forcing the use of this
profile in your tests (`-Dwebdriver.firefox.profile="ProfileName"`). If your Firefox 43 install isn't in your path, you can use the
`-Dwebdriver.firefox.profile` option set to the full path of its "firefox-bin" executable.
MacOS X Sierra users: if you experience by order of magnitude slower performance when connected to a WiFi network (e.g. office WiFi)
add your workstation to your local /etc/hosts file as described on https://github.com/SeleniumHQ/selenium/issues/2824.
To use Chrome instead of Firefox:
1. copy webdriver.properties from https://github.com/AlfrescoTestAutomation/selenium-grid/tree/master/src/main/resources
2. put it under src/test/resource in rm-automation-ui project
3. download the chrome driver from http://chromedriver.storage.googleapis.com and extract it
4. change the following properties in webdriver.properties: webdriver.browser (Chrome) and webdriver.chrome.server.path (path/to/chrome/driver)
5. run the tests as usual
## Updating License Headers
In order to refesh out of date license source headers run the following command:
```
mvn clean install -Dlicense.update.dryrun=false
```
## Running tests against latest Aikau snapshot
The latest Aikau snapshot can be pulled by running the following command in rm-community:
```
mvn clean install -DskipTests -Dalfresco.aikau.version=LATEST -U
```
Thereafter start the Share instance and run automation tests as described above.
## Configuring Outlook Integration
To download and run RM with the Outlook Integration AMPs installed on the repo and Share use the following commands:
```
mvn clean install -Pstart-repo,outlook-integration
mvn clean install -Pstart-share,outlook-integration
```
Follow these instructions to install licence and Outlook plugin:
* http://docs.alfresco.com/outlook2.1/tasks/Outlook-license.html
* http://docs.alfresco.com/outlook2.1/tasks/Outlook-install_v2.html
## SNAPSHOT dependencies
If you're building Enterprise RM, the base project (Community) is pulled in via a snapshot dependency configured in maven.
This dependency will either be loaded from your local .m2 cache, or from Nexus if the version in your .m2 doesn't exist or is old
('old' in maven terms is anything over 24 hours old). If maven fetches community dependencies from Nexus, then it's unlikely to contain your changes.
You want to always use the version in your local cache - this means either doing a daily build at the root project level
that pushes a new copy of the correct version into your cache, or alternatively you could run mvn with the
`--no-snapshot-dependency` (or `-nsu`) option, which won't try to download a newer version.
## Code Formatting
This project follows the usual Alfresco Coding Standards. If you use Eclipse or IntelliJ, there are settings inside the ide-config directory for you to import.
## Surf build errors
If you get:
```
[ERROR] Failed to execute goal on project alfresco-rm-community-share: Could not resolve dependencies for project org.alfresco:alfresco-rm-community-share:amp:2.6-SNAPSHOT: Failed to collect dependencies at org.alfresco.surf:spring-surf-api:jar:6.3 -> org.alfresco.surf:spring-surf:jar:${dependency.surf.version}: Failed to read artifact descriptor for org.alfresco.surf:spring-surf:jar:${dependency.surf.version}: Could not transfer artifact org.alfresco.surf:spring-surf:pom:${dependency.surf.version} from/to alfresco-internal (https://artifacts.alfresco.com/nexus/content/groups/private): Not authorized , ReasonPhrase:Unauthorized. -> [Help 1]
```
then please re-run with `-Ddependency.surf.version=6.3`
## Install lombok plugin for IDEs
To allow automation and benchmark projects to be built within an IDE the lombok 'plugin' needs to be installed.
Execute lombok.jar (doubleclick it, or run `java -jar lombok.jar`). Follow the instructions.
## Use Solr 6 with Alfresco 5.2.x
In alfresco-global.properties (depending on the RM edition `/records-management/rm-community/rm-community-repo/src/test/properties/local` or `/records-management/rm-enterprise/rm-enterprise-repo/src/test/properties/local`)
change the value for "index.subsystem.name" from "solr4" to "solr6".
Add also the following property "solr.port=8983".
Download the latest Alfresco Search Services from
[https://nexus.alfresco.com/nexus/#nexus-search;gav\~\~alfresco-search-services\~\~\~](https://nexus.alfresco.com/nexus/#nexus-search;gav~~alfresco-search-services~~~)
Currently it's 1.0.0 (alfresco-search-services-1.0.0.zip)
Unzip it and change to the "solr" folder within it. Start the Solr server using the following command:
```
solr start -a "-Dcreate.alfresco.defaults=alfresco,archive"
```
Start your repository

View File

@@ -1,155 +0,0 @@
Configuring and starting Alfresco/Share:
----------------------------------------
- Clone the project (e.g. git clone git@gitlab.alfresco.com:records-management/records-management.git)
- Import the project as a maven project
- Start the Alfresco/Share instances with the following commands:
mvn clean install -Pstart-repo
mvn clean install -Pstart-share
(these commands work best if run from the specific directories, e.g. start share from
rm-enterprise/rm-enterprise-share/ or rm-community/rm-community-share/ )
Configuring a different DB other than H2 (e.g. MySQL or PostgreSQL):
--------------------------------------------------------------------
- Create a file called "local.properties" under src/main/resources in alfresco-rm-enterprise-repo
- Add the following properties in this new file
my.db.name -> The name of the database schema
my.db.port -> The port number for your database (default port number for postgres is 5432 and for mysql it is 3306)
- Run the following commands to start your Alfresco instance:
to start Alfresco (using Postgres):
mvn clean install -Pstart-repo,use-postgres
to start Alfresco (using MySQL):
mvn clean install -Pstart-repo,use-mysql
Technical documentation:
------------------------
Technical documentation is available at rm-community/documentation/README.md and rm-enterprise/documentation/README.md.
This should be particularly useful for anyone wanting to integrate with or extend RM.
Running integration test:
-------------------------
In order to execute the integration tests run the following command (unit tests will be executed every time before you start Alfresco/Share):
mvn clean install -Dskip.integrationtests=false
Running UI Automation tests:
----------------------------
To run the automated UI tests, change to the rm-automation directory and run:
mvn clean install -Dskip.automationtests=false
Note: due to Selenium Firefox driver changes, the highest supported Firefox version for UI tests is 43.0.4 (with Selenium 2.52.0).
It is possible to have multiple versions of Firefox installed onto your workstation (e.g. one for running the UI tests and the other, kept
up to date, for everyday browsing) but beware Firefox auto-updates. In this scenario the best approach is to create a non-default profile
(default profiles will be shared between your Firefox installations!) for which auto-updates are disabled and forcing the use of this
profile in your tests (-Dwebdriver.firefox.profile="ProfileName"). If your Firefox 43 install isn't in your path, you can use the
-Dwebdriver.firefox.profile option set to the full path of its "firefox-bin" executable.
MacOS X Sierra users: if you experience by order of magnitude slower performance when connected to a WiFi network (e.g. office WiFi)
add your workstation to your local /etc/hosts file as described on https://github.com/SeleniumHQ/selenium/issues/2824.
To use Chrome instead of Firefox:
- copy webdriver.properties from https://github.com/AlfrescoTestAutomation/selenium-grid/tree/master/src/main/resources
- put it under src/test/resource in rm-automation-ui project
- download the chrome driver from http://chromedriver.storage.googleapis.com/ and extract it
- change the following properties in webdriver.properties: webdriver.browser (Chrome) and webdriver.chrome.server.path (path/to/chrome/driver)
- run the tests as usual
Updating License Headers:
-------------------------
In order to refesh out of date license source headers run the following command:
mvn clean install -Dlicense.update.dryrun=false
Running tests against latest Aikau snapshot:
--------------------------------------------
The latest Aikau snapshot can be pulled by running the following command in rm-community:
mvn clean install -DskipTests -Dalfresco.aikau.version=LATEST -U
Thereafter start the Share instance and run automation tests as described above.
Configuring Outlook Integration:
-------------------------------
To download and run RM with the Outlook Integration AMPs installed on the repo and Share use the following commands:
mvn clean install -Pstart-repo,outlook-integration
mvn clean install -Pstart-share,outlook-integration
Follow these instructions install licence and Outlook plugin:
- http://docs.alfresco.com/outlook2.1/tasks/Outlook-license.html
- http://docs.alfresco.com/outlook2.1/tasks/Outlook-install_v2.html
SNAPSHOT dependencies:
----------------------
If you're building Enterprise RM, the base project (Community) is pulled in via a snapshot dependency configured in maven.
This dependency will either be loaded from your local .m2 cache or from Nexus if the version in your .m2 doesn't exist or is old
(Old in maven terms is anything over 24hrs old). If maven fetches it from Nexus, your code it's unlikely to be the correct version.
You want to always use the version in your local cache - this means either doing a daily build at the root project level
that pushes a new copy of the correct version into your cache, or alternatively you could run mvn with the
--no-snapshot-dependency (or -nsu) option, which won't try to download a newer version.
Code Formatting:
----------------
This project follows the usual Alfresco Coding Standards. If you use Eclipse or IntelliJ, there are settings inside the ide-config directory for you to import.
Surf build errors:
------------------
If you get:
[ERROR] Failed to execute goal on project alfresco-rm-community-share: Could not resolve dependencies for project org.alfresco:alfresco-rm-community-share:amp:2.6-SNAPSHOT: Failed to collect dependencies at org.alfresco.surf:spring-surf-api:jar:6.3 -> org.alfresco.surf:spring-surf:jar:${dependency.surf.version}: Failed to read artifact descriptor for org.alfresco.surf:spring-surf:jar:${dependency.surf.version}: Could not transfer artifact org.alfresco.surf:spring-surf:pom:${dependency.surf.version} from/to alfresco-internal (https://artifacts.alfresco.com/nexus/content/groups/private): Not authorized , ReasonPhrase:Unauthorized. -> [Help 1]
then please re-run with -Ddependency.surf.version=6.3
Install lombok plugin for IDEs:
-------------------------------
To allow automation and benchmark projects to be built within an IDE the lombok 'plugin' needs to be installed.
Execute lombok.jar (doubleclick it, or run java -jar lombok.jar). Follow instructions.
Use Solr 6 with Alfresco 5.2.x:
-------------------------------
In alfresco-global.properties (depending on the RM edition /records-management/rm-community/rm-community-repo/src/test/properties/local or /records-management/rm-enterprise/rm-enterprise-repo/src/test/properties/local)
change the value for "index.subsystem.name" from "solr4" to "solr6".
Add also the following property "solr.port=8983".
Download the latest Alfresco Search Services from
https://nexus.alfresco.com/nexus/#nexus-search;gav~~alfresco-search-services~~~
Currently it's 1.0.0 (alfresco-search-services-1.0.0.zip)
Unzip it and change to the "solr" folder within it. Start the Solr server using the following command:
solr start -a "-Dcreate.alfresco.defaults=alfresco,archive"
Start your repository

14
pom.xml
View File

@@ -4,7 +4,7 @@
<groupId>org.alfresco</groupId>
<artifactId>alfresco-rm</artifactId>
<packaging>pom</packaging>
<version>2.6.0.1</version>
<version>2.7.0.1</version>
<name>Alfresco Records Management</name>
<parent>
@@ -24,7 +24,7 @@
<connection>scm:git:https://git.alfresco.com/records-management/records-management.git</connection>
<developerConnection>scm:git:https://git.alfresco.com/records-management/records-management.git</developerConnection>
<url>https://git.alfresco.com/records-management/records-management</url>
<tag>V2.6.0.1</tag>
<tag>V2.7.0.1</tag>
</scm>
<issueManagement>
@@ -200,6 +200,16 @@
<license.verbose>false</license.verbose>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>18.0</version>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>junit</groupId>

View File

@@ -8,7 +8,7 @@
<parent>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-rm</artifactId>
<version>2.6.0.1</version>
<version>2.7.0.1</version>
</parent>
<licenses>

View File

@@ -8,7 +8,7 @@
<parent>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-rm-automation</artifactId>
<version>2.6.0.1</version>
<version>2.7.0.1</version>
</parent>
<properties>

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -
@@ -73,7 +73,7 @@ import org.springframework.beans.factory.annotation.Autowired;
public abstract class BaseAPI
{
// logger
private static final Logger LOGGER = LoggerFactory.getLogger(BaseAPI.class);
protected static final Logger LOGGER = LoggerFactory.getLogger(BaseAPI.class);
/** exception key in JSON response body */
private static final String EXCEPTION_KEY = "exception";
@@ -121,6 +121,37 @@ public abstract class BaseAPI
return results;
}
/**
* Helper method to extract the property value for the given nodeRef and property name
*
* @param result
* @param nodeRef
* @param propertyName
* @return
*/
protected String getPropertyValue(JSONObject result, String nodeRef, String propertyName)
{
String propertyValue = "";
try
{
JSONArray items = result.getJSONArray("items");
for (int i = 0; i < items.length(); i++)
{
JSONObject item = items.getJSONObject(i);
if(nodeRef.equals(item.getString("nodeRef")))
{
propertyValue = item.getJSONObject("properties").getString(propertyName);
}
}
}
catch (JSONException error)
{
throw new RuntimeException("Unable to parse result", error);
}
return propertyValue;
}
/**
* Helper method to extract property values from request result and put them in map as a list that corresponds to a unique property value.
*
@@ -216,6 +247,7 @@ public abstract class BaseAPI
client.getAlfrescoUrl(),
URLEncodedUtils.format(parameters, "UTF-8"));
}
LOGGER.info("On GET {}, received following response: ", requestURL);
client.close();
return doGetRequest(username, password, requestURL);
}
@@ -309,6 +341,78 @@ public abstract class BaseAPI
}
}
/**
* Helper method for PUT requests
*
* @param adminUser user with administrative privileges
* @param adminPassword password for adminUser
* @param expectedStatusCode The expected return status code.
* @param requestParams zero or more endpoint specific request parameters
* @param urlTemplate request URL template
* @param urlTemplateParams zero or more parameters used with <i>urlTemplate</i>
*/
protected HttpResponse doPutJsonRequest(String adminUser,
String adminPassword,
int expectedStatusCode,
JSONObject requestParams,
String urlTemplate,
String... urlTemplateParams)
{
AlfrescoHttpClient client = alfrescoHttpClientFactory.getObject();
return doPutJsonRequest(adminUser, adminPassword, expectedStatusCode, client.getApiUrl(), requestParams, urlTemplate, urlTemplateParams);
}
/**
* Helper method for PUT requests
*
* @param adminUser user with administrative privileges
* @param adminPassword password for adminUser
* @param expectedStatusCode The expected return status code.
* @param urlStart the start of the URL (for example "alfresco/s/slingshot").
* @param requestParams zero or more endpoint specific request parameters
* @param urlTemplate request URL template
* @param urlTemplateParams zero or more parameters used with <i>urlTemplate</i>
* @throws AssertionError if the returned status code is not as expected.
*/
private HttpResponse doPutJsonRequest(String adminUser,
String adminPassword,
int expectedStatusCode,
String urlStart,
JSONObject requestParams,
String urlTemplate,
String... urlTemplateParams)
{
String requestUrl = formatRequestUrl(urlStart, urlTemplate, urlTemplateParams);
try
{
HttpResponse httpResponse = doRequestJson(HttpPut.class, requestUrl, adminUser, adminPassword, requestParams);
assertEquals("PUT request to " + requestUrl + " was not successful.", expectedStatusCode, httpResponse.getStatusLine().getStatusCode());
return httpResponse;
}
catch (InstantiationException | IllegalAccessException error)
{
throw new IllegalArgumentException("doPutRequest failed", error);
}
}
/**
* Fill in the parameters for a URL template.
*
* @param urlStart The start of the URL.
* @param urlTemplate The template.
* @param urlTemplateParams Any parameters that need to be filled into the URL template.
* @return The resultant URL.
*/
private String formatRequestUrl(String urlStart, String urlTemplate, String[] urlTemplateParams)
{
if (urlTemplateParams.length == 1)
{
// The format method needs some help to know not to use the whole array object.
return MessageFormat.format(urlTemplate, urlStart, urlTemplateParams[0]);
}
return MessageFormat.format(urlTemplate, urlStart, urlTemplateParams);
}
/**
* Helper method for POST requests
* @param adminUser user with administrative privileges
@@ -402,15 +506,12 @@ public abstract class BaseAPI
String urlTemplate,
String... urlTemplateParams)
{
// Ensure the host is part of the request URL.
String requestUrl = MessageFormat.format(
urlTemplate,
urlStart,
urlTemplateParams);
String requestUrl;
requestUrl = formatRequestUrl(urlStart, urlTemplate, urlTemplateParams);
try
{
HttpResponse httpResponse = doRequestJson(HttpPost.class, requestUrl, adminUser, adminPassword, requestParams);
assertEquals("POST request to " + requestUrl + " was not successful.", httpResponse.getStatusLine().getStatusCode(), expectedStatusCode);
assertEquals("POST request to " + requestUrl + " was not successful.", expectedStatusCode, httpResponse.getStatusLine().getStatusCode());
return httpResponse;
}
catch (InstantiationException | IllegalAccessException error)
@@ -452,7 +553,10 @@ public abstract class BaseAPI
{
((HttpEntityEnclosingRequestBase) request).setEntity(new StringEntity(requestParams.toString()));
}
LOGGER.info("Sending {} request to {}", requestType.getSimpleName(), requestUrl);
LOGGER.info("Request body: {}", requestParams);
response = client.execute(adminUser, adminPassword, request);
LOGGER.info("Response: {}", response.getStatusLine());
try
{
@@ -572,6 +676,9 @@ public abstract class BaseAPI
SHELF,
BOX,
FILE,
ORIGINATOR,
ORIGINATING_ORGANIZATION,
PUBLICATION_DATE
}
public enum RETENTION_SCHEDULE
@@ -586,7 +693,7 @@ public abstract class BaseAPI
RETENTION_GHOST,
RETENTION_ELIGIBLE_FIRST_EVENT,
RETENTION_EVENTS,
COMBINE_DISPOSITION_STEP_CONDITIONS
}
/**
@@ -598,6 +705,8 @@ public abstract class BaseAPI
CUT_OFF("cutoff"),
UNDO_CUT_OFF("undoCutoff"),
TRANSFER("transfer"),
COMPLETE_EVENT("completeEvent"),
UNDO_EVENT("undoEvent"),
DESTROY("destroy");
String action;

View File

@@ -0,0 +1,49 @@
/*
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -
* If the software was purchased under a paid Alfresco license, the terms of
* the paid license agreement will prevail. Otherwise, the software is
* provided under the following open source license terms:
* -
* Alfresco is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* -
* Alfresco is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
* -
* You should have received a copy of the GNU Lesser General Public License
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
* #L%
*/
package org.alfresco.rest.core.v0;
public enum RMEvents
{
ABOLISHED("abolished"),
ALL_ALLOWANCES_GRANTED_ARE_TERMINATED("all_allowances_granted_are_terminated"),
CASE_CLOSED("case_closed"),
DECLASSIFICATION_REVIEW("declassification_review"),
OBSOLETE("obsolete"),
NO_LONGER_NEEDED("no_longer_needed"),
STUDY_COMPLETE("study_complete");
private String eventName;
RMEvents(String eventName)
{
this.eventName = eventName;
}
public String getEventName()
{
return eventName;
}
}

View File

@@ -0,0 +1,89 @@
/*
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -
* If the software was purchased under a paid Alfresco license, the terms of
* the paid license agreement will prevail. Otherwise, the software is
* provided under the following open source license terms:
* -
* Alfresco is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* -
* Alfresco is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
* -
* You should have received a copy of the GNU Lesser General Public License
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
* #L%
*/
package org.alfresco.rest.rm.community.model.audit;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.alfresco.utility.model.TestModel;
/**
* POJO for audit entry
*
* @author Rodica Sutu
* @since 2.7
*/
@Builder
@Data
@NoArgsConstructor
@AllArgsConstructor
@JsonIgnoreProperties (ignoreUnknown = true)
public class AuditEntry extends TestModel
{
@JsonProperty (required = true)
private String nodeName;
@JsonProperty (required = true)
private List<Object> changedValues;
@JsonProperty (required = true)
private String identifier;
@JsonProperty (required = true)
private String path;
@JsonProperty (required = true)
private String nodeRef;
@JsonProperty (required = true)
private String fullName;
@JsonProperty
private String createPerson;
@JsonProperty (required = true)
private String userName;
@JsonProperty (required = true)
private String userRole;
@JsonProperty (required = true)
private String nodeType;
@JsonProperty (required = true)
private String event;
@JsonProperty (required = true)
private String timestamp;
}

View File

@@ -0,0 +1,57 @@
/*
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -
* If the software was purchased under a paid Alfresco license, the terms of
* the paid license agreement will prevail. Otherwise, the software is
* provided under the following open source license terms:
* -
* Alfresco is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* -
* Alfresco is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
* -
* You should have received a copy of the GNU Lesser General Public License
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
* #L%
*/
package org.alfresco.rest.rm.community.model.audit;
/**
* Enumerates the list of events audited
*
* @author Rodica Sutu
* @since 2.7
*
*/
public enum AuditEvents
{
CREATE_PERSON("Create Person", "Create User"),
DELETE_PERSON("Delete Person", "Delete User"),
CREATE_USER_GROUP("Create User Group", "Create User Group"),
DELETE_USER_GROUP("Delete User Group", "Delete User Group"),
ADD_TO_USER_GROUP("Add To User Group", "Add To User Group"),
REMOVE_FROM_USER_GROUP("Remove From User Group", "Remove From User Group"),
LOGIN_UNSUCCESSFUL("Login.Failure", "Login Unsuccessful");
/** event audited */
public final String event;
/** display name for the event audited */
public final String eventDisplayName;
AuditEvents(String event, String displayName)
{
this.event = event;
this.eventDisplayName = displayName;
}
}

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -
@@ -58,6 +58,8 @@ public class FilePlanComponentFields
public static final String PROPERTIES_RECORD_SEARCH_DISPOSITION_ACTION_NAME = "rma:recordSearchDispositionActionName";
public static final String PROPERTIES_RECORD_SEARCH_DISPOSITION_EVENTS_ELIGIBLE = "rma:recordSearchDispositionEventsEligible";
public static final String PROPERTIES_RECORD_SEARCH_DISPOSITION_INSTRUCTIONS = "rma:recordSearchDispositionInstructions";
public static final String PROPERTIES_DECLASSIFICATION_REVIEW_COMPLETED_BY = "rma:declassificationReviewCompletedBy";
public static final String PROPERTIES_DECLASSIFICATION_REVIEW_COMPLETED_AT = "rma:declassificationReviewCompletedAt";
/** File plan properties */
@@ -74,7 +76,9 @@ public class FilePlanComponentFields
public static final String PROPERTIES_RECORD_SEARCH_VITAL_RECORD_REVIEW_PERIOD = "rma:recordSearchVitalRecordReviewPeriod";
public static final String PROPERTIES_RECORD_SEARCH_VITAL_RECORD_REVIEW_PERIOD_EXPRESSION = "rma:recordSearchVitalRecordReviewPeriodExpression";
/** Record properties */
/**
* Record properties
*/
public static final String PROPERTIES_CLASSIFICATION = "sc:classification";
public static final String PROPERTIES_DATE_FILED = "rma:dateFiled";
public static final String PROPERTIES_ORIGINAL_NAME = "rma:origionalName";

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -
@@ -42,7 +42,6 @@ import lombok.NoArgsConstructor;
* @author Rodica Sutu
* @since 2.6
*/
@Builder
@Data
@EqualsAndHashCode(callSuper = true)
@NoArgsConstructor
@@ -51,4 +50,13 @@ public class RMSite extends RestSiteModel
{
@JsonProperty (required = true)
private RMSiteCompliance compliance;
/** Private constructor allowing Lombok to include superclass fields in the builder. */
@Builder
private RMSite(String title, String description, RMSiteCompliance compliance)
{
this.setTitle(title);
this.setDescription(description);
this.compliance = compliance;
}
}

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -

View File

@@ -0,0 +1,42 @@
/*
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -
* If the software was purchased under a paid Alfresco license, the terms of
* the paid license agreement will prevail. Otherwise, the software is
* provided under the following open source license terms:
* -
* Alfresco is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* -
* Alfresco is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
* -
* You should have received a copy of the GNU Lesser General Public License
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
* #L%
*/
package org.alfresco.rest.rm.community.model.user;
/**
* Constants for RM user capabilities
*
* @author Rodica Sutu
* @since 2.7
*/
public class UserCapabilities
{
/** The id of the view records capability. */
public static final String VIEW_RECORDS_CAP = "ViewRecords";
/** The id of the declare records capability. */
public static final String DECLARE_RECORDS_CAP = "DeclareRecords";
}

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -
@@ -24,19 +24,32 @@
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
* #L%
*/
package org.alfresco.rest.rm.community.model.user;
/**
* Constants for RM user roles
*
*
* @author Kristijan Conkas
* @since 2.6
*/
public class UserRoles
public enum UserRoles
{
public static final String ROLE_RM_ADMIN = "Administrator";
public static final String ROLE_RM_MANAGER = "RecordsManager";
public static final String ROLE_RM_POWER_USER = "PowerUser";
public static final String ROLE_RM_SECURITY_OFFICER = "SecurityOfficer";
public static final String ROLE_RM_USER = "User";
IN_PLACE_WRITERS("ExtendedWriters", "In-Place Writers"),
ROLE_RM_ADMIN("Administrator", "Records Management Administrator"),
ROLE_RM_MANAGER("RecordsManager", "Records Management Manager"),
ROLE_RM_POWER_USER("PowerUser", "Records Management Power User"),
ROLE_RM_SECURITY_OFFICER("SecurityOfficer", "Records Management Security Officer"),
ROLE_RM_USER("User", "Records Management User");
public final String roleId;
public final String displayName;
UserRoles(String roleId, String displayName)
{
this.roleId = roleId;
this.displayName = displayName;
}
}

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -
@@ -28,9 +28,18 @@ package org.alfresco.rest.rm.community.util;
import static org.alfresco.rest.rm.community.util.ParameterCheck.mandatoryObject;
import java.io.IOException;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.type.CollectionType;
import org.json.JSONArray;
import org.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Utility class for creating the json object
@@ -40,6 +49,11 @@ import com.fasterxml.jackson.databind.ObjectMapper;
*/
public class PojoUtility
{
/**
* Logger for the class.
*/
private static final Logger LOGGER = LoggerFactory.getLogger(PojoUtility.class);
/**
* see {@link #toJson(Object, Class, Class)}
*/
@@ -85,4 +99,64 @@ public class PojoUtility
return error.toString();
}
}
/**
* Converting json to java object
*
* @param json The json object to convert
* @param classz Class for the java object
* @return The converted java object
* @throws JsonProcessingException Throws exceptions if the given object doesn't match to the POJO class model
*/
public static <T> T jsonToObject(JSONObject json, Class<T> classz)
{
mandatoryObject("model", classz);
mandatoryObject("jsonObject", json);
ObjectMapper mapper = new ObjectMapper();
T obj = null;
try
{
obj = mapper.readValue(json.toString(), classz);
}
catch (IOException e)
{
LOGGER.error("Unable to convert the json into a java object.", e.toString());
}
return obj;
}
/**
* Converting json array into a list of java objects
*
* @param json The json array to convert
* @param classz Class for the java object
* @return The list of converted java objects
* @throws JsonProcessingException Throws exceptions if the given object doesn't match to the POJO class model
*/
public static <T> List<T> jsonToObject(JSONArray json, Class<T> classz)
{
mandatoryObject("model", classz);
mandatoryObject("jsonObject", json);
ObjectMapper mapper = new ObjectMapper();
CollectionType collectionType = mapper.getTypeFactory().constructCollectionType(List.class, classz);
List<T> asList = null;
try
{
asList = mapper.readValue(json.toString(), collectionType);
}
catch (IOException e)
{
LOGGER.error("Unable to convert the json array into a java collection.", e.toString());
}
return asList;
}
}

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -

View File

@@ -0,0 +1,74 @@
/*
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -
* If the software was purchased under a paid Alfresco license, the terms of
* the paid license agreement will prevail. Otherwise, the software is
* provided under the following open source license terms:
* -
* Alfresco is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* -
* Alfresco is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
* -
* You should have received a copy of the GNU Lesser General Public License
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
* #L%
*/
package org.alfresco.rest.v0;
import java.text.MessageFormat;
import org.alfresco.dataprep.AlfrescoHttpClient;
import org.alfresco.dataprep.AlfrescoHttpClientFactory;
import org.alfresco.rest.core.v0.BaseAPI;
import org.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
* The v0 REST API for nodes
*
* @author jcule
* @since 2.7EA1
*/
@Component
public class NodeAPI extends BaseAPI
{
/** Logger for the class. */
private static final Logger LOGGER = LoggerFactory.getLogger(NodeAPI.class);
/** The URI for the get node API. */
private static final String GET_NODE_API = "{0}alfresco/s/slingshot/doclib2/node/{1}";
@Autowired
private AlfrescoHttpClientFactory alfrescoHttpClientFactory;
/**
* Get the node metadata using the using the node data webscript: Document List v2 Component
*
* @param username
* @param password
* @param nodeId
* @return
*/
public JSONObject getNode(String username, String password, String nodeId)
{
String requestURL;
AlfrescoHttpClient client = alfrescoHttpClientFactory.getObject();
requestURL = MessageFormat.format(GET_NODE_API, client.getAlfrescoUrl(), NODE_PREFIX + nodeId);
client.close();
return doGetRequest(username, password, requestURL);
}
}

View File

@@ -0,0 +1,104 @@
/*
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -
* If the software was purchased under a paid Alfresco license, the terms of
* the paid license agreement will prevail. Otherwise, the software is
* provided under the following open source license terms:
* -
* Alfresco is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* -
* Alfresco is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
* -
* You should have received a copy of the GNU Lesser General Public License
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
* #L%
*/
package org.alfresco.rest.v0;
import static org.testng.Assert.assertTrue;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.text.MessageFormat;
import java.util.List;
import org.alfresco.rest.core.v0.BaseAPI;
import org.alfresco.rest.rm.community.model.audit.AuditEntry;
import org.alfresco.rest.rm.community.util.PojoUtility;
import org.json.JSONArray;
import org.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
/**
* The v0 REST API for rm audit logs
*
* @author Rodica Sutu
* @since 2.7
*/
@Component
public class RMAuditAPI extends BaseAPI
{
/** Logger for the class. */
private static final Logger LOGGER = LoggerFactory.getLogger(RMAuditAPI.class);
/** The URI for the audit API. */
private static final String RM_AUDIT_API = "{0}rma/admin/rmauditlog";
private static final String RM_AUDIT_LOG_API = RM_AUDIT_API + "?{1}";
/**
* Returns a list of rm audit entries .
*
* @param user The username of the user to use.
* @param password The password of the user.
* @param size Maximum number of log entries to return
* @param event The name of audit event to be retrieved
* @return return Only return log entries matching this event
*/
public List<AuditEntry> getRMAuditLog(String user, String password, final int size, final String event)
{
String parameters = null;
try
{
parameters = "size=" + size + (event != null ? "&event=" + URLEncoder.encode(event, "UTF-8"):"");
}
catch (UnsupportedEncodingException e)
{
LOGGER.error("Unable to encode the event name" + e.getMessage());
}
JSONArray auditEntries = doGetRequest(user, password,
MessageFormat.format(RM_AUDIT_LOG_API,"{0}", parameters)).getJSONObject("data").getJSONArray("entries");
return PojoUtility.jsonToObject(auditEntries, AuditEntry.class);
}
/**
* Clear the list of audit entries.
*
* @param username The username of the user to use.
* @param password The password of the user.
* @throws AssertionError If the API call didn't clear the audit log.
*/
public void clearAuditLog(String username, String password)
{
JSONObject deleteStatus = doDeleteRequest(username, password, RM_AUDIT_API);
assertTrue(deleteStatus != null
//audit clear and login events are returned
&& getRMAuditLog(username, password, 100, null).size() == 2);
}
}

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -
@@ -35,16 +35,19 @@ import static org.testng.AssertJUnit.fail;
import java.io.IOException;
import java.text.MessageFormat;
import java.time.Instant;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Arrays;
import java.util.Map;
import java.util.Set;
import org.alfresco.dataprep.AlfrescoHttpClient;
import org.alfresco.dataprep.AlfrescoHttpClientFactory;
import org.alfresco.dataprep.ContentService;
import org.alfresco.dataprep.UserService;
import org.alfresco.rest.core.v0.BaseAPI;
import org.alfresco.rest.core.v0.RMEvents;
import org.apache.chemistry.opencmis.client.api.CmisObject;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.http.HttpResponse;
@@ -70,6 +73,10 @@ import org.springframework.stereotype.Component;
@Component
public class RMRolesAndActionsAPI extends BaseAPI
{
/** The URI to view the configured roles and capabilities. */
private static final String RM_ROLES = "{0}rma/admin/rmroles";
/** The URI for REST requests about a particular configured role. */
private static final String RM_ROLES_ROLE = RM_ROLES + "/{1}";
private static final String RM_ROLES_AUTHORITIES = "{0}rm/roles/{1}/authorities/{2}?alf_ticket={3}";
// logger
@@ -88,6 +95,89 @@ public class RMRolesAndActionsAPI extends BaseAPI
@Autowired
private ContentService contentService;
/**
* Get all the configured RM roles.
*
* @param adminUser The RM admin user.
* @param adminPassword The password of the user.
* @return The RM roles in the system (Note that this will be the internal names, not the display labels).
*/
public Set<String> getConfiguredRoles(String adminUser, String adminPassword)
{
// Using "is=true" includes the in-place readers and writers.
JSONObject jsonObject = doGetRequest(adminUser, adminPassword, RM_ROLES + "?is=true").getJSONObject("data");
return jsonObject.toMap().keySet();
}
/**
* Get the capabilities for a given role.
*
* @param adminUser The RM admin user.
* @param adminPassword The password of the user.
* @param role The role to get capabilities for.
* @return The set of system names for the capabilities.
*/
public Set<String> getCapabilitiesForRole(String adminUser, String adminPassword, String role)
{
JSONObject jsonObject = doGetRequest(adminUser, adminPassword, RM_ROLES + "?is=true").getJSONObject("data");
assertTrue("Could not find role '" + role + "' in " + jsonObject.keySet(), jsonObject.has(role));
return jsonObject.getJSONObject(role).getJSONObject("capabilities").keySet();
}
/**
* Create a new RM role.
*
* @param adminUser The username of the admin user.
* @param adminPassword The password for the admin user.
* @param roleName The name of the new role.
* @param roleDisplayLabel A human-readable label for the role.
* @param capabilities A list of capabilities for the role.
*/
public void createRole(String adminUser, String adminPassword, String roleName, String roleDisplayLabel, Set<String> capabilities)
{
JSONObject requestBody = new JSONObject();
requestBody.put("name", roleName);
requestBody.put("displayLabel", roleDisplayLabel);
JSONArray capabilitiesArray = new JSONArray();
capabilities.forEach(capabilitiesArray::put);
requestBody.put("capabilities", capabilitiesArray);
doPostJsonRequest(adminUser, adminPassword, HttpStatus.SC_OK, requestBody, RM_ROLES);
}
/**
* Update an existing RM role.
*
* @param adminUser The username of the admin user.
* @param adminPassword The password for the admin user.
* @param roleName The name of the new role.
* @param roleDisplayLabel A human-readable label for the role.
* @param capabilities A list of capabilities for the role.
*/
public void updateRole(String adminUser, String adminPassword, String roleName, String roleDisplayLabel, Set<String> capabilities)
{
JSONObject requestBody = new JSONObject();
requestBody.put("name", roleName);
requestBody.put("displayLabel", roleDisplayLabel);
JSONArray capabilitiesArray = new JSONArray();
capabilities.forEach(capabilitiesArray::put);
requestBody.put("capabilities", capabilitiesArray);
doPutJsonRequest(adminUser, adminPassword, HttpStatus.SC_OK, requestBody, RM_ROLES_ROLE, roleName);
}
/**
* Delete a created RM role.
*
* @param adminUser The username of the admin user.
* @param adminPassword The password for the admin user.
* @param roleName The name of the role to be deleted.
*/
public void deleteRole(String adminUser, String adminPassword, String roleName)
{
doDeleteRequest(adminUser, adminPassword, MessageFormat.format(RM_ROLES_ROLE, "{0}", roleName));
boolean success = !getConfiguredRoles(adminUser, adminPassword).contains(roleName);
assertTrue("Failed to delete role " + roleName + " with " + adminUser, success);
}
/**
* create user and assign to records management role
*/
@@ -237,9 +327,9 @@ public class RMRolesAndActionsAPI extends BaseAPI
/**
* Perform an action on the record folder
*
* @param user the user closing the folder
* @param user the user executing the action
* @param password the user's password
* @param contentName the record folder name
* @param contentName the content name
* @param date the date to be updated
* @return The HTTP response.
*/
@@ -261,6 +351,56 @@ public class RMRolesAndActionsAPI extends BaseAPI
return doPostJsonRequest(user, password, SC_OK, requestParams, RM_ACTIONS_API);
}
/**
* Complete an event on the record/record folder
*
* @param user the user executing the action
* @param password the user's password
* @param nodeName the node name
* @param event the event to be completed
* @param date the date to be updated
* @return The HTTP response.
*/
public HttpResponse completeEvent(String user, String password, String nodeName, RMEvents event, Instant date)
{
String recNodeRef = getNodeRefSpacesStore() + contentService.getNodeRef(user, password, RM_SITE_ID, nodeName);
JSONObject requestParams = new JSONObject();
requestParams.put("name", RM_ACTIONS.COMPLETE_EVENT.getAction());
requestParams.put("nodeRef", recNodeRef);
date = (date != null) ? date : Instant.now();
String formattedDate = DateTimeFormatter.ISO_INSTANT.format(date);
requestParams.put("params", new JSONObject()
.put("eventName", event.getEventName())
.put("eventCompletedBy", user)
.put("eventCompletedAt", new JSONObject()
.put("iso8601", formattedDate)
)
);
return doPostJsonRequest(user, password, SC_OK, requestParams, RM_ACTIONS_API);
}
/**
* Undo an event on the record/record folder
*
* @param user the user executing the action
* @param password the user's password
* @param contentName the content name
* @param event the event to be undone
* @return The HTTP response.
*/
public HttpResponse undoEvent(String user, String password, String contentName, RMEvents event)
{
String recNodeRef = getNodeRefSpacesStore() + contentService.getNodeRef(user, password, RM_SITE_ID, contentName);
JSONObject requestParams = new JSONObject();
requestParams.put("name", RM_ACTIONS.UNDO_EVENT.getAction());
requestParams.put("nodeRef", recNodeRef);
requestParams.put("params", new JSONObject()
.put("eventName", event.getEventName()));
return doPostJsonRequest(user, password, SC_OK, requestParams, RM_ACTIONS_API);
}
/**
* Deletes every item in the given container
*
@@ -345,6 +485,10 @@ public class RMRolesAndActionsAPI extends BaseAPI
addPropertyToRequest(requestParams, "prop_cm_title", properties, RMProperty.TITLE);
addPropertyToRequest(requestParams, "prop_cm_description", properties, RMProperty.DESCRIPTION);
addPropertyToRequest(requestParams, "prop_cm_author", properties, RMProperty.AUTHOR);
addPropertyToRequest(requestParams, "prop_dod_originator", properties, RMProperty.ORIGINATOR);
addPropertyToRequest(requestParams, "prop_dod_originatingOrganization", properties, RMProperty
.ORIGINATING_ORGANIZATION);
addPropertyToRequest(requestParams, "prop_dod_publicationDate", properties, RMProperty.PUBLICATION_DATE);
return doPostJsonRequest(username, password, SC_OK, requestParams, MessageFormat.format(UPDATE_METADATA_API, "{0}", itemNodeRef));
}

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -
@@ -51,6 +51,8 @@ public class RecordCategoriesAPI extends BaseAPI
private static final Logger LOGGER = LoggerFactory.getLogger(RecordCategoriesAPI.class);
private static final String RM_ACTIONS_API = "{0}rma/actions/ExecutionQueue";
private static final String DISPOSITION_ACTIONS_API = "{0}node/{1}/dispositionschedule/dispositionactiondefinitions";
private static final String DISPOSITION_SCHEDULE_API = "{0}node/{1}/dispositionschedule";
/**
* Creates a retention schedule for the category given as parameter
@@ -71,6 +73,21 @@ public class RecordCategoriesAPI extends BaseAPI
return doPostJsonRequest(user, password, SC_OK, requestParams, RM_ACTIONS_API);
}
/**
* Get the disposition schedule nodeRef
*
* @param user
* @param password
* @param categoryName
* @return the disposition schedule nodeRef
*/
public String getDispositionScheduleNodeRef(String user, String password, String categoryName)
{
String catNodeRef = NODE_PREFIX + getItemNodeRef(user, password, "/" + categoryName);
JSONObject dispositionSchedule = doGetRequest(user, password, MessageFormat.format(DISPOSITION_SCHEDULE_API, "{0}", catNodeRef));
return dispositionSchedule.getJSONObject("data").getString("nodeRef").replace(getNodeRefSpacesStore(), "");
}
/**
* Sets retention schedule authority and instructions, also if it is applied to records or folders
*
@@ -108,7 +125,12 @@ public class RecordCategoriesAPI extends BaseAPI
addPropertyToRequest(requestParams, "period", properties, RETENTION_SCHEDULE.RETENTION_PERIOD);
addPropertyToRequest(requestParams, "ghostOnDestroy", properties, RETENTION_SCHEDULE.RETENTION_GHOST);
addPropertyToRequest(requestParams, "periodProperty", properties, RETENTION_SCHEDULE.RETENTION_PERIOD_PROPERTY);
addPropertyToRequest(requestParams, "events", properties, RETENTION_SCHEDULE.RETENTION_EVENTS);
String events = getPropertyValue(properties, RETENTION_SCHEDULE.RETENTION_EVENTS);
if(!events.equals(""))
{
requestParams.append("events", events);
}
addPropertyToRequest(requestParams, "combineDispositionStepConditions", properties, RETENTION_SCHEDULE.COMBINE_DISPOSITION_STEP_CONDITIONS);
addPropertyToRequest(requestParams, "eligibleOnFirstCompleteEvent", properties, RETENTION_SCHEDULE.RETENTION_ELIGIBLE_FIRST_EVENT);
return doPostJsonRequest(user, password, SC_OK, requestParams, MessageFormat.format(DISPOSITION_ACTIONS_API, "{0}", catNodeRef));

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -
@@ -36,6 +36,7 @@ import org.alfresco.dataprep.CMISUtil.DocumentType;
import org.alfresco.dataprep.ContentService;
import org.alfresco.rest.core.v0.BaseAPI;
import org.apache.chemistry.opencmis.client.api.CmisObject;
import org.apache.commons.lang3.tuple.Pair;
import org.apache.http.HttpResponse;
import org.json.JSONException;
import org.json.JSONObject;
@@ -44,8 +45,6 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import javafx.util.Pair;
/**
* Methods to make API requests using v0 API on records
*
@@ -322,13 +321,13 @@ public class RecordsAPI extends BaseAPI
{
if (response.has("sharedId"))
{
return new Pair<>(true, response.getString("sharedId"));
return Pair.of(true, response.getString("sharedId"));
}
} catch (JSONException e)
{
LOGGER.info("Unable to extract response parameter", e);
}
return new Pair<>(false, String.valueOf(response.getJSONObject("status").getInt("code")));
return Pair.of(false, String.valueOf(response.getJSONObject("status").getInt("code")));
}
/**
@@ -350,4 +349,17 @@ public class RecordsAPI extends BaseAPI
return doPostJsonRequest(user, password, SC_OK, requestParams, ACTIONS_API);
}
/**
* Retrieves the record's nodeRef
*
* @param username the user's username
* @param password its password
* @param recordName the record full name
* @param recordPath the String with which the record name starts
* @return the record nodeRef in case it exists, empty string otherwise
*/
public String getRecordNodeRef(String username, String password, String recordName, String recordPath)
{
return getNodeRefSpacesStore() + getItemNodeRef(username, password, recordPath + "/" + recordName);
}
}

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -
@@ -36,6 +36,7 @@ import org.alfresco.rest.core.v0.BaseAPI;
import org.apache.http.NameValuePair;
import org.apache.http.client.utils.URLEncodedUtils;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONException;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@@ -56,12 +57,15 @@ public class SearchAPI extends BaseAPI
/** faceted search API endpoint */
private static final String FACETED_SEARCH_ENDPOINT = "{0}alfresco/s/slingshot/rmsearch/faceted/rmsearch?{1}";
/** share live search API endpoint */
private static final String SHARE_LIVE_SEARCH_DOCS_ENDPOINT = "{0}alfresco/s/slingshot/live-search-docs?{1}";
/** RM search URL template */
private static final String RM_SEARCH_ENDPOINT = "{0}alfresco/s/slingshot/rmsearch/{1}?{2}";
/** RM document search filters */
private static final String RM_DEFAULT_RECORD_FILTERS =
"records/true,undeclared/true,vital/false,folders/false,categories/false,frozen/false,cutoff/false";
/** RM all nodes search filters */
private static final String RM_DEFAULT_NODES_FILTERS =
"records/true,undeclared/true,vital/false,folders/{0},categories/{1},frozen/false,cutoff/false";
/**
* Perform search request on search endpoint as a user.
@@ -87,6 +91,7 @@ public class SearchAPI extends BaseAPI
* @param site
* @param query
* @param filters
* @param sortby
* @return search results (see API reference for more details), null for any errors
*/
public JSONObject rmSearch(
@@ -94,11 +99,16 @@ public class SearchAPI extends BaseAPI
String password,
String site,
String query,
String filters)
String filters,
String sortby)
{
List<BasicNameValuePair> searchParameters = new ArrayList<BasicNameValuePair>();
searchParameters.add(new BasicNameValuePair("query", query));
searchParameters.add(new BasicNameValuePair("filters", filters));
if (sortby != null)
{
searchParameters.add(new BasicNameValuePair("sortby", sortby));
}
String requestURL = MessageFormat.format(
RM_SEARCH_ENDPOINT,
@@ -110,22 +120,44 @@ public class SearchAPI extends BaseAPI
}
/**
* Search as a user for records on site "rm" matching query, using SearchAPI.RM_DEFAULT_RECORD_FILTERS
* Search as a user for nodes on site "rm" matching query, using SearchAPI.RM_DEFAULT_RECORD_FILTERS and sorted
* by sortby
* <br>
* If more fine-grained control of search parameters is required, use rmSearch() directly.
*
* @param username
* @param password
* @param query
* @return list of record names
* @param sortby
* @return list of node names
*/
public List<String> searchForRecordsAsUser(
String username,
String password,
String query)
public List<String> searchForNodeNamesAsUser(String username, String password, String query, String sortby,
boolean includeCategories, boolean includeFolders)
{
return getItemNames(rmSearch(username, password, "rm", query, RM_DEFAULT_RECORD_FILTERS));
String searchFilterParamaters = MessageFormat.format(RM_DEFAULT_NODES_FILTERS, Boolean.toString(includeFolders),
Boolean.toString(includeCategories));
return getItemNames(rmSearch(username, password, "rm", query, searchFilterParamaters, sortby));
}
/**
* Search as a user for nodes on site "rm" matching query, using SearchAPI.RM_DEFAULT_RECORD_FILTERS and sorted
* by sortby and returns the property value for the given nodeRef and property name
*
* @param username
* @param password
* @param query
* @param sortby
* @param includeCategories
* @param includeFolders
* @return list of node properties
*/
public String searchForNodePropertyAsUser(String username, String password, String nodeRef, String propertyName, String query, String sortby,
boolean includeCategories, boolean includeFolders)
{
String searchFilterParamaters = MessageFormat.format(RM_DEFAULT_NODES_FILTERS, Boolean.toString(includeFolders),
Boolean.toString(includeCategories));
return getItemProperty(rmSearch(username, password, "rm", query, searchFilterParamaters, sortby), nodeRef, propertyName);
}
/**
* Generic faceted search.
* @param username
@@ -138,6 +170,20 @@ public class SearchAPI extends BaseAPI
return facetedRequest(username, password, parameters, FACETED_SEARCH_ENDPOINT);
}
/**
* Execute share live search for documents.
*
* @param searchUser
* @param searchPassword
* @param searchTerm
* @return search results (see API reference for more details)
*/
public JSONObject liveSearchForDocuments(String searchUser, String searchPassword, String searchTerm)
{
return facetedRequest(searchUser, searchPassword, Arrays.asList(new BasicNameValuePair("t", searchTerm)),
SHARE_LIVE_SEARCH_DOCS_ENDPOINT);
}
/**
* Execute faceted search for term.
* @param searchUser
@@ -165,14 +211,51 @@ public class SearchAPI extends BaseAPI
return getItemNames(facetedSearchForTerm(username, password, term));
}
/**
* Helper method to search for documents as a user using share live search.
* @param username to search as
* @param password for username
* @param term search term
* @return list of document names found
*/
public List<String> liveSearchForDocumentsAsUser(String username, String password, String term) throws JSONException
{
JSONObject searchResult = liveSearchForDocuments(username, password, term);
LOGGER.info(searchResult.toString(3));
return getItemNames(searchResult);
}
/**
* Helper method to extract list of names from search result.
*
* @param searchResult
* @return list of document or record names in search result
* @throws FileNotFoundException
* @throws JsonSyntaxException
* @throws JsonIOException
* @throws RuntimeException for malformed search response
*/
/**
* Helper method to extract list of names from search result.
*
* @param searchResult
* @param getProperties
* @return
*/
private List<String> getItemNames(JSONObject searchResult)
{
return getPropertyValues(searchResult, "name");
}
/**
* Helper method to extract list of property values from search result for the given nodeRef.
*
* @param searchResult
* @param getProperties
* @return
*/
private String getItemProperty(JSONObject searchResult, String nodeRef, String propertyName)
{
return getPropertyValue(searchResult, nodeRef, propertyName);
}
}

View File

@@ -2,7 +2,7 @@
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2019 Alfresco Software Limited
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -

View File

@@ -0,0 +1,139 @@
/*
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -
* If the software was purchased under a paid Alfresco license, the terms of
* the paid license agreement will prevail. Otherwise, the software is
* provided under the following open source license terms:
* -
* Alfresco is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* -
* Alfresco is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
* -
* You should have received a copy of the GNU Lesser General Public License
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
* #L%
*/
package org.alfresco.rest.v0.service;
import java.util.HashMap;
import org.alfresco.rest.core.v0.BaseAPI;
import org.alfresco.rest.rm.community.model.recordcategory.RecordCategory;
import org.alfresco.rest.v0.RecordCategoriesAPI;
import org.alfresco.utility.data.DataUser;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* Service for different disposition schedule actions
*
* @author jcule
* @since 2.7.0.1
*/
@Service
public class DispositionScheduleService extends BaseAPI
{
@Autowired
private RecordCategoriesAPI recordCategoriesAPI;
@Autowired
private DataUser dataUser;
/**
* Helper method for adding a cut off after period step
*
* @param categoryName the category in whose schedule the step will be added
* @param period
* @return
*/
public void addCutOffAfterPeriodStep(String categoryName, String period)
{
HashMap<RETENTION_SCHEDULE, String> cutOffStep = new HashMap<>();
cutOffStep.put(RETENTION_SCHEDULE.NAME, "cutoff");
cutOffStep.put(RETENTION_SCHEDULE.RETENTION_PERIOD, period);
cutOffStep.put(RETENTION_SCHEDULE.DESCRIPTION, "Cut off after a period step");
recordCategoriesAPI.addDispositionScheduleSteps(dataUser.getAdminUser().getUsername(),
dataUser.getAdminUser().getPassword(), categoryName, cutOffStep);
}
/**
* Helper method for adding a cut off after an event occurs step
*
* @param categoryName the category in whose schedule the step will be added
* @param events
*/
public void addCutOffAfterEventStep(String categoryName, String events)
{
HashMap<RETENTION_SCHEDULE, String> cutOffStep = new HashMap<>();
cutOffStep.put(RETENTION_SCHEDULE.NAME, "cutoff");
cutOffStep.put(RETENTION_SCHEDULE.RETENTION_EVENTS, events);
cutOffStep.put(RETENTION_SCHEDULE.DESCRIPTION, "Cut off after event step");
recordCategoriesAPI.addDispositionScheduleSteps(dataUser.getAdminUser().getUsername(),
dataUser.getAdminUser().getPassword(), categoryName, cutOffStep);
}
/**
* Helper method for adding an accession step
*
* @param timeOrEvent
* @param events
* @param period
* @param periodProperty
* @param combineConditions
* @return
*/
public void addAccessionStep(String categoryName, Boolean timeOrEvent, String events, String period, String
periodProperty, Boolean combineConditions)
{
HashMap<RETENTION_SCHEDULE, String> accessionStep = new HashMap<>();
accessionStep.put(RETENTION_SCHEDULE.NAME, "accession");
accessionStep.put(RETENTION_SCHEDULE.COMBINE_DISPOSITION_STEP_CONDITIONS, Boolean.toString(combineConditions));
accessionStep.put(RETENTION_SCHEDULE.RETENTION_PERIOD, period);
accessionStep.put(RETENTION_SCHEDULE.RETENTION_PERIOD_PROPERTY, periodProperty);
if (!timeOrEvent)
{
accessionStep.put(RETENTION_SCHEDULE.RETENTION_ELIGIBLE_FIRST_EVENT, Boolean.toString(timeOrEvent));
}
accessionStep.put(RETENTION_SCHEDULE.RETENTION_EVENTS, events);
accessionStep.put(RETENTION_SCHEDULE.DESCRIPTION,
"Accession step with time and event conditions.");
recordCategoriesAPI.addDispositionScheduleSteps(dataUser.getAdminUser().getUsername(),
dataUser.getAdminUser().getPassword(), categoryName, accessionStep);
}
/**
* Helper method to create retention schedule with general fields for the given category as admin
* and apply it to the records
*
* @param categoryName
* @param appliedToRecords
*/
public void createCategoryRetentionSchedule(String categoryName, Boolean appliedToRecords)
{
recordCategoriesAPI.createRetentionSchedule(dataUser.getAdminUser().getUsername(),
dataUser.getAdminUser().getPassword(), categoryName);
String retentionScheduleNodeRef = recordCategoriesAPI.getDispositionScheduleNodeRef(
dataUser.getAdminUser().getUsername(), dataUser.getAdminUser().getPassword(), categoryName);
HashMap<RETENTION_SCHEDULE, String> retentionScheduleGeneralFields = new HashMap<>();
retentionScheduleGeneralFields.put(RETENTION_SCHEDULE.RETENTION_AUTHORITY, "Authority");
retentionScheduleGeneralFields.put(RETENTION_SCHEDULE.RETENTION_INSTRUCTIONS, "Instructions");
recordCategoriesAPI.setRetentionScheduleGeneralFields(dataUser.getAdminUser().getUsername(),
dataUser.getAdminUser().getPassword(), retentionScheduleNodeRef, retentionScheduleGeneralFields,
appliedToRecords);
}
}

View File

@@ -0,0 +1,84 @@
/*
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -
* If the software was purchased under a paid Alfresco license, the terms of
* the paid license agreement will prevail. Otherwise, the software is
* provided under the following open source license terms:
* -
* Alfresco is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* -
* Alfresco is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
* -
* You should have received a copy of the GNU Lesser General Public License
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
* #L%
*/
package org.alfresco.rest.v0.service;
import java.util.HashSet;
import java.util.Set;
import org.alfresco.rest.rm.community.model.user.UserRoles;
import org.alfresco.rest.v0.RMRolesAndActionsAPI;
import org.alfresco.utility.data.DataUser;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* Produces processed results from roles API calls
*
* @author Rodica Sutu
* @since 2.6
*/
@Service
public class RoleService
{
@Autowired
private RMRolesAndActionsAPI rmRolesAndActionsAPI;
@Autowired
private DataUser dataUser;
/**
* Add capabilities to a role
*
* @param role role to be updated
* @param capabilities list of capabilities to be added
*/
public void addCapabilitiesToRole(UserRoles role, Set<String> capabilities)
{
Set<String> roleCapabilities = new HashSet<>();
roleCapabilities.addAll(rmRolesAndActionsAPI.getCapabilitiesForRole(dataUser.getAdminUser().getUsername(),
dataUser.getAdminUser().getPassword(), role.roleId));
capabilities.stream().forEach(cap -> roleCapabilities.add(cap));
rmRolesAndActionsAPI.updateRole(dataUser.getAdminUser().getUsername(), dataUser.getAdminUser().getPassword(),
role.roleId, role.displayName, roleCapabilities);
}
/**
* Remove capabilities from a role
*
* @param role role to be updated
* @param capabilities list of capabilities to be removed
*/
public void removeCapabilitiesFromRole(UserRoles role, Set<String> capabilities)
{
Set<String> roleCapabilities = rmRolesAndActionsAPI.getCapabilitiesForRole(dataUser.getAdminUser().getUsername(),
dataUser.getAdminUser().getPassword(), role.roleId);
roleCapabilities.removeAll(capabilities);
rmRolesAndActionsAPI.updateRole(dataUser.getAdminUser().getUsername(), dataUser.getAdminUser().getPassword(),
role.roleId, role.displayName, roleCapabilities);
}
}

View File

@@ -0,0 +1,174 @@
/*
* #%L
* Alfresco Records Management Module
* %%
* Copyright (C) 2005 - 2018 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -
* If the software was purchased under a paid Alfresco license, the terms of
* the paid license agreement will prevail. Otherwise, the software is
* provided under the following open source license terms:
* -
* Alfresco is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* -
* Alfresco is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
* -
* You should have received a copy of the GNU Lesser General Public License
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
* #L%
*/
package org.alfresco.rest.rm.community.audit;
import static org.alfresco.rest.rm.community.model.audit.AuditEvents.ADD_TO_USER_GROUP;
import static org.alfresco.rest.rm.community.model.audit.AuditEvents.CREATE_USER_GROUP;
import static org.alfresco.rest.rm.community.model.audit.AuditEvents.DELETE_USER_GROUP;
import static org.alfresco.rest.rm.community.model.audit.AuditEvents.REMOVE_FROM_USER_GROUP;
import static org.alfresco.utility.report.log.Step.STEP;
import static org.testng.AssertJUnit.assertTrue;
import java.util.List;
import com.google.common.collect.ImmutableMap;
import org.alfresco.rest.rm.community.base.BaseRMRestTest;
import org.alfresco.rest.rm.community.model.audit.AuditEntry;
import org.alfresco.rest.v0.RMAuditAPI;
import org.alfresco.test.AlfrescoTest;
import org.alfresco.utility.model.GroupModel;
import org.alfresco.utility.model.UserModel;
import org.springframework.beans.factory.annotation.Autowired;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
/**
* This class contains the tests that check the group events are audited
*
* @author Claudia Agache
* @since 2.7
*/
@AlfrescoTest (jira = "RM-5236")
public class AuditGroupEventsTests extends BaseRMRestTest
{
@Autowired
private RMAuditAPI rmAuditAPI;
private GroupModel testGroup;
private UserModel testUser;
@BeforeClass (alwaysRun = true)
public void cleanAuditLogs()
{
//clean audit logs
rmAuditAPI.clearAuditLog(getAdminUser().getUsername(), getAdminUser().getPassword());
}
/**
* Given I have created a new group
* When I view the RM audit
* Then there is an entry showing that I created a group
*/
@Test
public void createGroupEventIsAudited()
{
testGroup = dataGroup.createRandomGroup();
STEP("Get the list of audit entries for the create group event.");
List<AuditEntry> auditEntries = rmAuditAPI.getRMAuditLog(getAdminUser().getUsername(),
getAdminUser().getPassword(), 100, CREATE_USER_GROUP.event);
STEP("Check the audit log contains only the entries for the created group.");
assertTrue("The list of events is not filtered by " + CREATE_USER_GROUP.event,
auditEntries.stream().allMatch(auditEntry -> auditEntry.getEvent().equals(CREATE_USER_GROUP.eventDisplayName)));
assertTrue("The group name for the new group created is not audited.",
auditEntries.stream().filter(auditEntry -> auditEntry.getEvent().equals(CREATE_USER_GROUP.eventDisplayName))
.anyMatch(auditEntry -> auditEntry.getNodeName().equals(testGroup.getGroupIdentifier())));
}
/**
* Given I have added a user to a group
* When I view the RM audit
* Then there is an entry showing that I have added a user to a group
*/
@Test
public void addUserToGroupEventIsAudited()
{
testGroup = dataGroup.createRandomGroup();
testUser = getDataUser().createRandomTestUser();
dataGroup.usingUser(testUser).addUserToGroup(testGroup);
STEP("Get the list of audit entries for the add user to group event.");
List<AuditEntry> auditEntries = rmAuditAPI.getRMAuditLog(getAdminUser().getUsername(),
getAdminUser().getPassword(), 100, ADD_TO_USER_GROUP.event);
STEP("Check the audit log contains only the entries for the add user to group event.");
assertTrue("The list of events is not filtered by " + ADD_TO_USER_GROUP.event,
auditEntries.stream().allMatch(auditEntry -> auditEntry.getEvent().equals(ADD_TO_USER_GROUP.eventDisplayName)));
assertTrue("The username and destination group are not audited.",
auditEntries.stream().filter(auditEntry -> auditEntry.getEvent().equals(ADD_TO_USER_GROUP.eventDisplayName))
.anyMatch(auditEntry -> auditEntry.getNodeName().equals(testGroup.getGroupIdentifier())
&& auditEntry.getChangedValues().contains(ImmutableMap.of("new", testUser.getUsername(), "previous", "", "name", "User Name"))
&& auditEntry.getChangedValues().contains(ImmutableMap.of("new", testGroup.getGroupIdentifier(), "previous", "", "name", "Parent Group"))));
}
/**
* Given I have removed a user from a group
* When I view the RM audit
* Then there is an entry showing that I have removed a user from a group
*/
@Test
public void removeUserFromGroupEventIsAudited()
{
testGroup = dataGroup.createRandomGroup();
testUser = getDataUser().createRandomTestUser();
dataGroup.usingUser(testUser).addUserToGroup(testGroup);
dataGroup.removeUserFromGroup(testGroup, testUser);
STEP("Get the list of audit entries for the add user to group event.");
List<AuditEntry> auditEntries = rmAuditAPI.getRMAuditLog(getAdminUser().getUsername(),
getAdminUser().getPassword(), 100, REMOVE_FROM_USER_GROUP.event);
STEP("Check the audit log contains only the entries for the remove user from group event.");
assertTrue("The list of events is not filtered by " + REMOVE_FROM_USER_GROUP.event,
auditEntries.stream().allMatch(auditEntry -> auditEntry.getEvent().equals(REMOVE_FROM_USER_GROUP.eventDisplayName)));
assertTrue("The username and previous parent group are not audited.",
auditEntries.stream().filter(auditEntry -> auditEntry.getEvent().equals(REMOVE_FROM_USER_GROUP.eventDisplayName))
.anyMatch(auditEntry -> auditEntry.getNodeName().equals(testGroup.getGroupIdentifier())
&& auditEntry.getChangedValues().contains(ImmutableMap.of("new", "", "previous", testUser.getUsername(), "name", "User Name"))
&& auditEntry.getChangedValues().contains(ImmutableMap.of("new", "","previous", testGroup.getGroupIdentifier(), "name", "Parent Group"))));
}
/**
* Given I have deleted a group
* When I view the RM audit
* Then there is an entry showing that I have deleted a group
*/
@Test
public void deleteGroupEventIsAudited()
{
testGroup = dataGroup.createRandomGroup();
dataGroup.deleteGroup(testGroup);
STEP("Get the list of audit entries for the delete group event.");
List<AuditEntry> auditEntries = rmAuditAPI.getRMAuditLog(getAdminUser().getUsername(),
getAdminUser().getPassword(), 100, DELETE_USER_GROUP.event);
STEP("Check the audit log contains only the entries for the created group.");
assertTrue("The list of events is not filtered by " + DELETE_USER_GROUP.event,
auditEntries.stream().allMatch(auditEntry -> auditEntry.getEvent().equals(DELETE_USER_GROUP.eventDisplayName)));
assertTrue("The group name for the deleted group is not audited.",
auditEntries.stream().filter(auditEntry -> auditEntry.getEvent().equals(DELETE_USER_GROUP.eventDisplayName))
.anyMatch(auditEntry -> auditEntry.getNodeName().equals(testGroup.getGroupIdentifier())
&& auditEntry.getChangedValues().contains(ImmutableMap.of("new", "", "previous", testGroup.getGroupIdentifier(), "name", "authorityDisplayName"))));
}
}

Some files were not shown because too many files have changed in this diff Show More