Author: ludovic
Date: 2007-12-29 14:34:57 +0100 (Sat, 29 Dec 2007)
New Revision: 6548
Modified:
xwiki-products/curriki/trunk/plugins/spacemanager/src/main/java/org/xwiki/plugin/spacemanager/api/Space.java
xwiki-products/curriki/trunk/plugins/spacemanager/src/main/java/org/xwiki/plugin/spacemanager/impl/SpaceManagerImpl.java
xwiki-products/curriki/trunk/plugins/spacemanager/src/test/java/org/xwiki/plugin/spacemanager/impl/SpaceImplTest.java
xwiki-products/curriki/trunk/plugins/spacemanager/src/test/java/org/xwiki/plugin/spacemanager/impl/SpaceManagerImplTest.java
Log:
CURRIKI-1287 Allow non admins to create groups
Modified:
xwiki-products/curriki/trunk/plugins/spacemanager/src/main/java/org/xwiki/plugin/spacemanager/api/Space.java
===================================================================
---
xwiki-products/curriki/trunk/plugins/spacemanager/src/main/java/org/xwiki/plugin/spacemanager/api/Space.java
2007-12-29 02:52:32 UTC (rev 6547)
+++
xwiki-products/curriki/trunk/plugins/spacemanager/src/main/java/org/xwiki/plugin/spacemanager/api/Space.java
2007-12-29 13:34:57 UTC (rev 6548)
@@ -159,6 +159,12 @@
public void save() throws XWikiException;
/**
+ * Save the modified space
+ * @throws XWikiException
+ */
+ public void saveWithProgrammingRights() throws XWikiException;
+
+ /**
* Update the space data from the request
*/
public void updateSpaceFromRequest() throws SpaceManagerException;
Modified:
xwiki-products/curriki/trunk/plugins/spacemanager/src/main/java/org/xwiki/plugin/spacemanager/impl/SpaceManagerImpl.java
===================================================================
---
xwiki-products/curriki/trunk/plugins/spacemanager/src/main/java/org/xwiki/plugin/spacemanager/impl/SpaceManagerImpl.java
2007-12-29 02:52:32 UTC (rev 6547)
+++
xwiki-products/curriki/trunk/plugins/spacemanager/src/main/java/org/xwiki/plugin/spacemanager/impl/SpaceManagerImpl.java
2007-12-29 13:34:57 UTC (rev 6548)
@@ -247,7 +247,7 @@
// Make sure we set the type
newspace.setType(getSpaceTypeName());
try {
- newspace.save();
+ newspace.saveWithProgrammingRights();
} catch (XWikiException e) {
throw new SpaceManagerException(e);
}
@@ -286,7 +286,7 @@
newspace.setDisplayTitle(spaceTitle);
newspace.setCreator(context.getUser());
try {
- newspace.save();
+ newspace.saveWithProgrammingRights();
} catch (XWikiException e) {
throw new SpaceManagerException(e);
}
@@ -342,7 +342,7 @@
// we need to do it twice because data could have been overwritten by
copyWikiWeb
newspace.updateSpaceFromRequest();
try {
- newspace.save();
+ newspace.saveWithProgrammingRights();
} catch (XWikiException e) {
throw new SpaceManagerException(e);
}
@@ -382,7 +382,7 @@
if (!space.isNew()) {
space.setType("deleted");
try {
- space.save();
+ space.saveWithProgrammingRights();
} catch (XWikiException e) {
throw new SpaceManagerException(e);
}
@@ -411,7 +411,7 @@
if (space.isDeleted()) {
space.setType(getSpaceTypeName());
try {
- space.save();
+ space.saveWithProgrammingRights();
} catch (XWikiException e) {
throw new SpaceManagerException(e);
}
@@ -587,7 +587,7 @@
*/
public void saveSpace(Space space, XWikiContext context) throws
SpaceManagerException {
try {
- space.save();
+ space.saveWithProgrammingRights();
} catch (XWikiException e) {
throw new SpaceManagerException(e);
}
Modified:
xwiki-products/curriki/trunk/plugins/spacemanager/src/test/java/org/xwiki/plugin/spacemanager/impl/SpaceImplTest.java
===================================================================
---
xwiki-products/curriki/trunk/plugins/spacemanager/src/test/java/org/xwiki/plugin/spacemanager/impl/SpaceImplTest.java
2007-12-29 02:52:32 UTC (rev 6547)
+++
xwiki-products/curriki/trunk/plugins/spacemanager/src/test/java/org/xwiki/plugin/spacemanager/impl/SpaceImplTest.java
2007-12-29 13:34:57 UTC (rev 6548)
@@ -13,6 +13,7 @@
import com.xpn.xwiki.XWikiConfig;
import com.xpn.xwiki.XWikiContext;
import com.xpn.xwiki.XWikiException;
+import com.xpn.xwiki.objects.BaseObject;
import com.xpn.xwiki.doc.XWikiDocument;
import com.xpn.xwiki.store.XWikiHibernateStore;
import com.xpn.xwiki.store.XWikiHibernateVersioningStore;
@@ -97,9 +98,28 @@
this.xwiki.setVersioningStore((XWikiVersioningStoreInterface)
mockXWikiVersioningStore
.proxy());
this.context.setWiki(xwiki);
+ this.context.setDatabase("xwiki");
+ this.context.setMainXWiki("xwiki");
+ this.context.setUser("XWiki.Admin");
this.spaceManager = new
SpaceManagerImpl("spacemanager",SpaceManagerImpl.class.toString(),context);
this.spaceManager.init(context);
+
+ XWikiDocument prefdoc = new XWikiDocument("XWiki", "XWikiPreferences");
+ BaseObject obj = new BaseObject();
+ obj.setName("XWiki.XWikiPreferences");
+ obj.setClassName("XWiki.XWikiGlobalRights");
+ obj.setStringValue("users", "XWiki.Admin");
+ obj.setStringValue("groups", "");
+ obj.setStringValue("levels", "admin,programming");
+ obj.setIntValue("allow", 1);
+ prefdoc.addObject("XWiki.XWikiGlobalRights", obj);
+ this.xwiki.saveDocument(prefdoc, context);
+
+ XWikiDocument doc = new XWikiDocument("Main", "WebHome");
+ doc.setAuthor("xwiki:XWiki.Admin");
+ context.setDoc(doc);
+
this.space = (SpaceImpl) this.spaceManager.createSpace(displayTitle,
context);
}
Modified:
xwiki-products/curriki/trunk/plugins/spacemanager/src/test/java/org/xwiki/plugin/spacemanager/impl/SpaceManagerImplTest.java
===================================================================
---
xwiki-products/curriki/trunk/plugins/spacemanager/src/test/java/org/xwiki/plugin/spacemanager/impl/SpaceManagerImplTest.java
2007-12-29 02:52:32 UTC (rev 6547)
+++
xwiki-products/curriki/trunk/plugins/spacemanager/src/test/java/org/xwiki/plugin/spacemanager/impl/SpaceManagerImplTest.java
2007-12-29 13:34:57 UTC (rev 6548)
@@ -12,6 +12,7 @@
import com.xpn.xwiki.XWikiConfig;
import com.xpn.xwiki.XWikiContext;
import com.xpn.xwiki.XWikiException;
+import com.xpn.xwiki.objects.BaseObject;
import com.xpn.xwiki.doc.XWikiDocument;
import com.xpn.xwiki.store.XWikiHibernateVersioningStore;
import com.xpn.xwiki.store.XWikiHibernateStore;
@@ -101,10 +102,30 @@
this.xwiki.setStore((XWikiStoreInterface) mockXWikiStore.proxy());
this.xwiki.setVersioningStore((XWikiVersioningStoreInterface)
mockXWikiVersioningStore
.proxy());
+ this.xwiki.setDatabase("xwiki");
+
this.context.setWiki(xwiki);
+ this.context.setUser("XWiki.NotAdmin");
+ this.context.setDatabase("xwiki");
+ this.context.setMainXWiki("xwiki");
this.spaceManager = new
SpaceManagerImpl("spacemanager",SpaceManagerImpl.class.toString(),context);
- this.spaceManager.init(context);
+ this.spaceManager.init(context);
+
+ XWikiDocument prefdoc = new XWikiDocument("XWiki", "XWikiPreferences");
+ BaseObject obj = new BaseObject();
+ obj.setName("XWiki.XWikiPreferences");
+ obj.setClassName("XWiki.XWikiGlobalRights");
+ obj.setStringValue("users", "XWiki.Admin");
+ obj.setStringValue("groups", "");
+ obj.setStringValue("levels", "admin,programming");
+ obj.setIntValue("allow", 1);
+ prefdoc.addObject("XWiki.XWikiGlobalRights", obj);
+ this.xwiki.saveDocument(prefdoc, context);
+
+ XWikiDocument doc = new XWikiDocument("Main", "WebHome");
+ doc.setAuthor("xwiki:XWiki.Admin");
+ context.setDoc(doc);
}
/**
_______________________________________________
notifications mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/notifications