Skip to content

Commit b1d9ca0

Browse files
authored
Merge pull request #6045 from ryanjdew/bugfix/DHFPROD-7473-5.5
DHFPROD-7473: (5.5.3) Ensure data-hub-job-internal role can update jobs
2 parents 0207c40 + 9e840d3 commit b1d9ca0

File tree

3 files changed

+18
-3
lines changed
  • marklogic-data-hub-spark-connector/src/test/java/com/marklogic/hub/spark/sql/sources/v2/writer
  • marklogic-data-hub/src
    • main/resources/ml-modules/root/data-hub/5/impl
    • test/ml-modules/root/test/suites/data-hub/5/builtins/steps/mapping/validate-entity

3 files changed

+18
-3
lines changed

marklogic-data-hub-spark-connector/src/test/java/com/marklogic/hub/spark/sql/sources/v2/writer/WriteJobsDataTest.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@
66
import com.marklogic.hub.spark.sql.sources.v2.AbstractSparkConnectorTest;
77
import org.junit.jupiter.api.Test;
88

9+
import java.util.Iterator;
10+
import java.util.concurrent.atomic.AtomicInteger;
11+
912
import static org.junit.jupiter.api.Assertions.*;
1013

1114
public class WriteJobsDataTest extends AbstractSparkConnectorTest {
@@ -40,7 +43,13 @@ void ingestDocsWithJobDoc() {
4043
assertEquals(DocumentMetadataHandle.Capability.READ, perms.get("data-hub-job-reader").iterator().next());
4144
assertEquals(DocumentMetadataHandle.Capability.UPDATE, perms.get("flow-developer-role").iterator().next());
4245
assertEquals(DocumentMetadataHandle.Capability.UPDATE, perms.get("flow-operator-role").iterator().next());
43-
assertEquals(DocumentMetadataHandle.Capability.UPDATE, perms.get("data-hub-job-internal").iterator().next());
46+
Iterator<?> internalPermissions = perms.get("data-hub-job-internal").iterator();
47+
AtomicInteger internalPermissionsCount = new AtomicInteger();
48+
internalPermissions.forEachRemaining((internalPermission) -> {
49+
assertTrue(DocumentMetadataHandle.Capability.UPDATE.equals(internalPermission) || DocumentMetadataHandle.Capability.READ.equals(internalPermission));
50+
internalPermissionsCount.getAndIncrement();
51+
});
52+
assertEquals(2, internalPermissionsCount.get());
4453

4554
dataSourceWriter.commit(null);
4655

marklogic-data-hub/src/main/resources/ml-modules/root/data-hub/5/impl/jobs.sjs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,13 @@ function saveNewJob(job) {
6767

6868
function buildJobPermissions() {
6969
let permissionsString = config.JOBPERMISSIONS;
70-
let permissions = xdmp.defaultPermissions().concat([xdmp.permission(config.FLOWDEVELOPERROLE, 'update'), xdmp.permission(config.FLOWOPERATORROLE, 'update')]);
70+
let permissions = xdmp.defaultPermissions().concat([
71+
xdmp.permission(config.FLOWDEVELOPERROLE, "update"),
72+
xdmp.permission(config.FLOWOPERATORROLE, "update"),
73+
xdmp.permission("data-hub-job-internal", "update"),
74+
xdmp.permission("data-hub-job-internal", "read"),
75+
xdmp.permission("data-hub-job-reader", "read")
76+
]);
7177
if (permissionsString != null && permissionsString.indexOf("mlJobPermissions") < 0) {
7278
let tokens = permissionsString.split(",");
7379
for (let i = 0; i < tokens.length; i += 2) {

marklogic-data-hub/src/test/ml-modules/root/test/suites/data-hub/5/builtins/steps/mapping/validate-entity/rejectFromFlow.sjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ if (lib.canTestJsonSchemaValidation()) {
4242
// Per DHFPROD-3108, verifying that the new data-hub-job-reader/data-hub-job-internal permissions are set as well
4343
let jobReaderPerm = batchData.perms.find(perm => xdmp.roleName(perm.roleId) == "data-hub-job-reader");
4444
assertions.push(test.assertEqual("read", jobReaderPerm.capability));
45-
let jobInternalPerm = batchData.perms.find(perm => xdmp.roleName(perm.roleId) == "data-hub-job-internal");
45+
let jobInternalPerm = batchData.perms.find(perm => xdmp.roleName(perm.roleId) == "data-hub-job-internal" && perm.capability == "update");
4646
assertions.push(test.assertEqual("update", jobInternalPerm.capability));
4747

4848
assertions;

0 commit comments

Comments
 (0)