Skip to content

Commit 644fdba

Browse files
authored
Stream permissions (#1213)
## Rationale Use `streamPermissions()` ## Related Pull Requests - LabKey/platform#8063
1 parent abe452e commit 644fdba

1 file changed

Lines changed: 7 additions & 19 deletions

File tree

ehr/api-src/org/labkey/api/ehr/dataentry/AbstractDataEntryForm.java

Lines changed: 7 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -42,11 +42,10 @@
4242
import java.util.Map;
4343
import java.util.Set;
4444
import java.util.function.Supplier;
45+
import java.util.stream.Stream;
4546

4647
/**
4748
* Base class for implementations of @{link DataEntryForm}.
48-
* User: bimber
49-
* Date: 4/27/13
5049
*/
5150
public class AbstractDataEntryForm implements DataEntryForm
5251
{
@@ -304,29 +303,18 @@ private Map<String, Map<String, Map<String, String>>> getPermissionMap()
304303
String schemaName= pair.first;
305304
String queryName = pair.second;
306305

307-
Map<String, Map<String, String>> schemaPerms = permissionMap.get(schemaName);
308-
if (schemaPerms == null)
309-
schemaPerms = new HashMap<>();
306+
Map<String, Map<String, String>> schemaPerms = permissionMap.computeIfAbsent(schemaName, k -> new HashMap<>());
307+
Map<String, String> queryPerms = schemaPerms.computeIfAbsent(queryName, k -> new HashMap<>());
310308

311-
Map<String, String> queryPerms = schemaPerms.get(queryName);
312-
if (queryPerms == null)
313-
queryPerms = new HashMap<>();
314-
315-
Set<Class<? extends Permission>> setOfPermissions;
309+
Stream<Class<? extends Permission>> streamOfPermissions;
316310

317311
//test if this is a dataset
318312
if ("study".equalsIgnoreCase(schemaName) && datasetMap.get(queryName) != null)
319-
setOfPermissions = datasetMap.get(queryName).getPermissions(_ctx.getUser());
313+
streamOfPermissions = datasetMap.get(queryName).getPermissions(_ctx.getUser()).stream();
320314
else
321-
setOfPermissions = SecurityManager.getPermissions(_ctx.getContainer(), _ctx.getUser(), Set.of());
322-
323-
for (Class<? extends Permission> p : setOfPermissions)
324-
{
325-
queryPerms.put(p.getName(), p.getCanonicalName());
326-
}
315+
streamOfPermissions = SecurityManager.streamPermissions(_ctx.getContainer(), _ctx.getUser(), Set.of());
327316

328-
schemaPerms.put(queryName, queryPerms);
329-
permissionMap.put(schemaName, schemaPerms);
317+
streamOfPermissions.forEach(p -> queryPerms.put(p.getName(), p.getCanonicalName()));
330318
}
331319

332320
return permissionMap;

0 commit comments

Comments
 (0)