1 package org.simantics.db.layer0.request;
\r
3 import org.simantics.db.ReadGraph;
\r
4 import org.simantics.db.Resource;
\r
5 import org.simantics.db.SessionModel;
\r
6 import org.simantics.db.common.request.ResourceRead;
\r
7 import org.simantics.db.exception.DatabaseException;
\r
8 import org.simantics.operation.Layer0X;
\r
9 import org.simantics.user.UserResource;
\r
11 public class ActiveSessionRole extends ResourceRead<Resource> {
\r
13 public ActiveSessionRole(Resource model) {
\r
18 public Resource perform(ReadGraph graph) throws DatabaseException {
\r
19 Layer0X L0X = Layer0X.getInstance(graph);
\r
20 UserResource USER = UserResource.getInstance(graph);
\r
21 Resource session = graph.getService(SessionModel.class).getResource();
\r
22 for(Resource selection : graph.getObjects(session, L0X.Session_HasRoleSelection)) {
\r
23 Resource model = graph.getPossibleObject(selection, USER.RoleSelection_HasModel);
\r
24 if(model.equals(resource)) {
\r
25 return graph.getPossibleObject(selection, USER.RoleSelection_HasRole);
\r
28 return USER.DefaultRole;
\r