]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/request/ActiveSessionRole.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.db.layer0 / src / org / simantics / db / layer0 / request / 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 }