Author: michiel
Date: 2009-07-06 16:31:49 +0200 (Mon, 06 Jul 2009)
New Revision: 36578
Modified:
mmbase/trunk/core/src/main/java/org/mmbase/module/core/MMObjectNode.java
Log:
A few test-cases related to setting security context where failing. This fixes
them
Modified:
mmbase/trunk/core/src/main/java/org/mmbase/module/core/MMObjectNode.java
===================================================================
--- mmbase/trunk/core/src/main/java/org/mmbase/module/core/MMObjectNode.java
2009-07-06 14:31:10 UTC (rev 36577)
+++ mmbase/trunk/core/src/main/java/org/mmbase/module/core/MMObjectNode.java
2009-07-06 14:31:49 UTC (rev 36578)
@@ -170,6 +170,7 @@
public MMObjectNode(MMObjectNode node) {
parent = node.parent;
isNew = node.isNew();
+ newContext = node.newContext;
values.putAll(node.getValues());
values.putAll(node.getOldValues());
}
@@ -328,13 +329,22 @@
* @since MMBase-1.7
*/
public int insert(UserContext user) {
+ String nc = newContext;
int nodeID = parent.safeInsert(this, user.getIdentifier());
if (nodeID != -1) {
MMBaseCop mmbaseCop = parent.getMMBase().getMMBaseCop();
mmbaseCop.getAuthorization().create(user, nodeID);
- if (newContext != null) {
- mmbaseCop.getAuthorization().setContext(user, nodeID,
newContext);
+ if (nc != null) {
+ mmbaseCop.getAuthorization().setContext(user, nodeID, nc);
+ if (log.isDebugEnabled()) {
+ log.debug("Context was set " + newContext + " " + this);
+ }
newContext = null;
+ parent.safeCommit(this);
+ } else {
+ if (log.isDebugEnabled()) {
+ log.debug("Context was not set " + this);
+ }
}
}
return nodeID;
@@ -353,9 +363,12 @@
MMBaseCop mmbaseCop = parent.getMMBase().getMMBaseCop();
mmbaseCop.getAuthorization().update(user, getNumber());
if (newContext != null) {
- mmbaseCop.getAuthorization().setContext(user,getNumber(),
newContext);
+ // can only be done with real number
+ mmbaseCop.getAuthorization().setContext(user, getNumber(),
newContext);
newContext = null;
+ parent.safeCommit(this);
}
+ mmbaseCop.getAuthorization().update(user, getNumber());
}
return success;
}
@@ -383,11 +396,14 @@
* @since MMBase-1.7
*/
public void setContext(UserContext user, String context, boolean now) {
- if (now) {
-
parent.getMMBase().getMMBaseCop().getAuthorization().setContext(user,
getNumber(), context);
- } else {
- newContext = context;
- }
+ if (log.isDebugEnabled()) {
+ log.debug("Setting context " + user + " -> " + context + " " + now
+ " on " + this);
+ }
+ if (now) {
+
parent.getMMBase().getMMBaseCop().getAuthorization().setContext(user,
getNumber(), context);
+ } else {
+ newContext = context;
+ }
}
/**
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs