]> gerrit.simantics Code Review - simantics/platform.git/blob - ActiveSessionRole.java
3de869aeae7532c3a0072f2a6348c8480a9aec0e
[simantics/platform.git] / ActiveSessionRole.java
1 package org.simantics.db.layer0.request;\r
2 \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
10 \r
11 public class ActiveSessionRole extends ResourceRead<Resource> {\r
12 \r
13     public ActiveSessionRole(Resource model) {\r
14         super(model);\r
15     }\r
16     \r
17     @Override\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
26             }\r
27         }\r
28         return USER.DefaultRole;\r
29     }\r
30     \r
31 }