Author: michiel
Date: 2009-05-12 18:43:34 +0200 (Tue, 12 May 2009)
New Revision: 35105

Modified:
   
mmbase/trunk/applications/cloudcontext/src/org/mmbase/security/implementation/cloudcontext/BasicContextProvider.java
Log:
  MMB-1757

Modified: 
mmbase/trunk/applications/cloudcontext/src/org/mmbase/security/implementation/cloudcontext/BasicContextProvider.java
===================================================================
--- 
mmbase/trunk/applications/cloudcontext/src/org/mmbase/security/implementation/cloudcontext/BasicContextProvider.java
        2009-05-12 16:40:23 UTC (rev 35104)
+++ 
mmbase/trunk/applications/cloudcontext/src/org/mmbase/security/implementation/cloudcontext/BasicContextProvider.java
        2009-05-12 16:43:34 UTC (rev 35105)
@@ -93,14 +93,22 @@
         return false;
     }
 
+    /**
+     * For the given context- builder return which field contains the 
'context'.
+     */
+    protected String getContextNameField(String table) {
+        return "name";
+    }
 
+
     public Collection<NodeSearchQuery> getContextQueries() {
         return queries;
     }
 
 
     public String getContext(MMObjectNode node) throws SecurityException {
-        return getContextNode(node).getStringValue("name");
+        MMObjectNode contextNode = getContextNode(node);
+        return 
contextNode.getStringValue(getContextNameField(contextNode.getBuilder().getTableName()));
         //log.debug("check if we may read the node with # " + i + " nodeid?");
         //return Contexts.getBuilder().getContext((User) userContext, nodeId);
     }
@@ -145,9 +153,10 @@
                     MMObjectBuilder contextBuilder = 
MMBase.getMMBase().getBuilder(q.getSteps().get(0).getTableName());
                     Iterator<MMObjectNode> i = 
contextBuilder.getNodes(q).iterator();  // list all  Contextes simply..
                     all = new TreeSet<String>();
+                    String nameField = 
getContextNameField(q.getBuilder().getTableName());
                     while (i.hasNext()) {
                         MMObjectNode context = i.next();
-                        all.add(context.getStringValue("name"));
+                        all.add(context.getStringValue(nameField));
                     }
                 }
                 //invalidableObjects.put("ALL", 
Collections.unmodifiableSortedSet(all));
@@ -210,8 +219,8 @@
                 try {
                     MMObjectBuilder contextBuilder = query.getBuilder();
                     query = (NodeSearchQuery) query.clone();
-
-                    BasicFieldValueConstraint constraint = new 
BasicFieldValueConstraint(query.getField(contextBuilder.getField("name")), 
context);
+                    String nameField = 
getContextNameField(contextBuilder.getTableName());
+                    BasicFieldValueConstraint constraint = new 
BasicFieldValueConstraint(query.getField(contextBuilder.getField(nameField)), 
context);
                     query.setConstraint(constraint);
                     Iterator<MMObjectNode> i = 
contextBuilder.getNodes(query).iterator();
                     if (i.hasNext()) {
@@ -255,11 +264,12 @@
             Iterator<MMObjectNode> i = possibleContexts.iterator();
             while (i.hasNext()) {
                 MMObjectNode context = i.next();
+                String contextField = 
getContextNameField(context.getBuilder().getTableName());
                 if (mayDo(user, context, Operation.READ )) {
-                    set.add(context.getStringValue("name"));
+                    set.add(context.getStringValue(contextField));
                 } else {
                     if (log.isDebugEnabled()) {
-                        log.debug("context with name:" + 
context.getStringValue("name") + " could not be added to possible contexes, 
since we had no read rights");
+                        log.debug("context with name:" + 
context.getStringValue(contextField) + " could not be added to possible 
contexes, since we had no read rights");
                     }
                 }
             }

_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to