1 package org.simantics.db.layer0.request;
\r
3 import java.util.ArrayList;
\r
4 import java.util.Collection;
\r
6 import org.simantics.db.ReadGraph;
\r
7 import org.simantics.db.Resource;
\r
8 import org.simantics.db.common.request.ResourceRead2;
\r
9 import org.simantics.db.exception.DatabaseException;
\r
10 import org.simantics.db.layer0.adapter.Instances;
\r
11 import org.simantics.user.UserResource;
\r
13 public class PossibleRoles extends ResourceRead2<Collection<Resource>> {
\r
15 public PossibleRoles(Resource model, Resource user) {
\r
20 public Collection<Resource> perform(ReadGraph graph) throws DatabaseException {
\r
22 UserResource USER = UserResource.getInstance(graph);
\r
23 ArrayList<Resource> result = new ArrayList<Resource>();
\r
24 Instances query = graph.adapt(USER.RoleAssignment, Instances.class);
\r
25 for(Resource assignment : query.find(graph, resource)) {
\r
26 if(graph.syncRequest(new IsUserAssigned(assignment, resource2))) {
\r
27 result.addAll(graph.getObjects(assignment, USER.RoleAssignment_HasRole));
\r
30 result.add(USER.DefaultRole);
\r