Author: mir
Date: Thu Sep 30 16:45:04 2010
New Revision: 1003150

URL: http://svn.apache.org/viewvc?rev=1003150&view=rev
Log:
CLEREZZA-312: instead of adding the whole system graph to the context, only the 
triples needed are added

Modified:
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.usermanager/src/main/java/org/apache/clerezza/platform/usermanager/UserLoginNode.java

Modified: 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.usermanager/src/main/java/org/apache/clerezza/platform/usermanager/UserLoginNode.java
URL: 
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.usermanager/src/main/java/org/apache/clerezza/platform/usermanager/UserLoginNode.java?rev=1003150&r1=1003149&r2=1003150&view=diff
==============================================================================
--- 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.usermanager/src/main/java/org/apache/clerezza/platform/usermanager/UserLoginNode.java
 (original)
+++ 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.usermanager/src/main/java/org/apache/clerezza/platform/usermanager/UserLoginNode.java
 Thu Sep 30 16:45:04 2010
@@ -21,15 +21,19 @@ package org.apache.clerezza.platform.use
 import java.security.AccessControlContext;
 import java.security.AccessController;
 import java.security.PrivilegedAction;
+import java.util.Iterator;
 import org.apache.clerezza.platform.security.UserUtil;
-import org.apache.clerezza.rdf.core.NonLiteral;
 
 import org.apache.clerezza.rdf.utils.GraphNode;
 import org.apache.felix.scr.annotations.Component;
 import org.apache.felix.scr.annotations.Reference;
 import org.apache.felix.scr.annotations.Service;
 import org.apache.clerezza.platform.typerendering.UserContextProvider;
-import org.apache.clerezza.rdf.core.Resource;
+import org.apache.clerezza.rdf.core.MGraph;
+import org.apache.clerezza.rdf.core.Triple;
+import org.apache.clerezza.rdf.core.UriRef;
+import org.apache.clerezza.rdf.core.impl.SimpleMGraph;
+import org.apache.clerezza.rdf.ontologies.PERMISSION;
 import org.apache.clerezza.rdf.ontologies.PLATFORM;
 
 /**
@@ -62,14 +66,20 @@ public class UserLoginNode implements Us
                        }
                });
                if (agent != null) {
-                       if (!(node.getObjects(PLATFORM.user).hasNext())) {
-                               node.addProperty(PLATFORM.user, 
agent.getNode());
-                       } else {
-                               Resource user = 
node.getObjects(PLATFORM.user).next();
-                               agent.replaceWith((NonLiteral) user);
-                       }
-                       node.getGraph().addAll(agent.getGraph());
+                       node.addProperty(PLATFORM.user, agent.getNode());
+                       MGraph userContext = new 
SimpleMGraph(agent.getNodeContext());
+                       removeTripleWithProperty(userContext, 
PERMISSION.password);
+                       removeTripleWithProperty(userContext, 
PERMISSION.passwordSha1);
+                       node.getGraph().addAll(userContext);                    
                }
                return node;
        }
+
+       private void removeTripleWithProperty(MGraph userContext, UriRef 
property) {
+               Iterator<Triple> propertyTriples = userContext.filter(null, 
property, null);
+               while (propertyTriples.hasNext()) {
+                       propertyTriples.next();
+                       propertyTriples.remove();
+               }
+       }
 }


Reply via email to