Skip to content

Commit 51c7d03

Browse files
committed
Ensure request details uses correct containerpath
1 parent 89a5fad commit 51c7d03

3 files changed

Lines changed: 51 additions & 28 deletions

File tree

mcc/src/client/components/RequestUtils.tsx

Lines changed: 46 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import React from 'react';
2-
import { Filter, Query } from '@labkey/api';
2+
import { Filter, getServerContext, Query } from '@labkey/api';
33
import { v4 as uuidv4 } from 'uuid';
44

55
export class AnimalRequestModel {
@@ -78,6 +78,18 @@ export class AnimalCohort {
7878
uuid: string = uuidv4().toUpperCase();
7979
}
8080

81+
function hasAnimalDataReadPermission() {
82+
const ctx = getServerContext().getModuleContext('mcc') || {};
83+
84+
return !!ctx.hasAnimalDataReadPermission
85+
}
86+
87+
function getMccDataContainerPath() {
88+
const ctx = getServerContext().getModuleContext('mcc') || {};
89+
90+
return ctx.hasAnimalDataReadPermission ? ctx.MCCContainer : null
91+
}
92+
8193
export async function queryRequestInformation(requestId, handleFailure) {
8294
const requestData = new AnimalRequestModel()
8395

@@ -200,38 +212,45 @@ export async function queryRequestInformation(requestId, handleFailure) {
200212
},
201213
failure: handleFailure
202214
})
203-
}),
204-
new Promise<any>((resolve, reject) => {
205-
Query.selectRows({
206-
schemaName: "study",
207-
queryName: "departure",
208-
columns: [
209-
"Id",
210-
"date",
211-
"source",
212-
"objectid"
213-
],
214-
filterArray: [
215-
Filter.create('mccRequestId/objectId', requestId)
216-
],
217-
success: function (resp) {
218-
// NOTE: abort so that we preserve the default value of one empty row
219-
if (!resp.rows.length) {
220-
requestData.shipments = []
221-
} else {
222-
requestData.shipments = resp.rows
223-
}
224-
225-
resolve(requestData.shipments)
226-
},
227-
failure: handleFailure
228-
})
229215
})]
230216

217+
if (hasAnimalDataReadPermission()) {
218+
promises.push(new Promise<any>((resolve, reject) => {
219+
Query.selectRows({
220+
containerPath: getMccDataContainerPath(),
221+
schemaName: "study",
222+
queryName: "departure",
223+
columns: [
224+
"Id",
225+
"date",
226+
"source",
227+
"objectid"
228+
],
229+
filterArray: [
230+
Filter.create('mccRequestId/objectId', requestId)
231+
],
232+
success: function (resp) {
233+
// NOTE: abort so that we preserve the default value of one empty row
234+
if (!resp.rows.length) {
235+
requestData.shipments = []
236+
} else {
237+
requestData.shipments = resp.rows
238+
}
239+
240+
resolve(requestData.shipments)
241+
},
242+
failure: handleFailure
243+
})
244+
}))
245+
}
246+
231247
return await Promise.all(promises).then(values => {
232248
requestData.request = values[0]
233249
requestData.coinvestigators = values[1]
234250
requestData.cohorts = values[2]
251+
if (promises.length > 3) {
252+
requestData.shipments = values[3]
253+
}
235254
requestData.dataLoaded = true
236255

237256
return(requestData)

mcc/src/org/labkey/mcc/MccModule.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import org.labkey.api.module.ModuleContext;
3030
import org.labkey.api.query.DefaultSchema;
3131
import org.labkey.api.query.QuerySchema;
32+
import org.labkey.api.security.permissions.ReadPermission;
3233
import org.labkey.api.security.roles.RoleManager;
3334
import org.labkey.api.util.SystemMaintenance;
3435
import org.labkey.api.view.WebPartFactory;
@@ -109,6 +110,9 @@ public JSONObject getPageContextJson(ContainerUser context)
109110
ret.put("hasRabPermission", requestContainer != null && requestContainer.hasPermission(context.getUser(), MccRabReviewPermission.class));
110111
ret.put("hasFinalDecisionPermission", requestContainer != null && requestContainer.hasPermission(context.getUser(), MccFinalReviewPermission.class));
111112

113+
Container dataContainer = MccManager.get().getMCCContainer(context.getContainer());
114+
ret.put("hasAnimalDataReadPermission", dataContainer != null && dataContainer.hasPermission(context.getUser(), ReadPermission.class));
115+
112116
return ret;
113117
}
114118

mcc/src/org/labkey/mcc/query/MccRequestCustomizer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ public boolean isSortable()
9292

9393
ExprColumn newCol = new ExprColumn(ti, "transferIds", sql, JdbcType.VARCHAR, ti.getColumn("requestId"));
9494
newCol.setLabel("Animal ID(s)");
95-
newCol.setWidth("150");
95+
newCol.setWidth("100");
9696
ti.addColumn(newCol);
9797
}
9898
}

0 commit comments

Comments
 (0)