Author: ludovic
Date: 2007-11-07 20:39:20 +0100 (Wed, 07 Nov 2007)
New Revision: 5713
Modified:
xwiki-products/curriki/trunk/plugins/asset/src/main/java/org/curriki/xwiki/plugin/asset/Asset.java
Log:
CURRIKI-1090 Implement File Check Support for rights update
Modified:
xwiki-products/curriki/trunk/plugins/asset/src/main/java/org/curriki/xwiki/plugin/asset/Asset.java
===================================================================
---
xwiki-products/curriki/trunk/plugins/asset/src/main/java/org/curriki/xwiki/plugin/asset/Asset.java
2007-11-07 19:38:58 UTC (rev 5712)
+++
xwiki-products/curriki/trunk/plugins/asset/src/main/java/org/curriki/xwiki/plugin/asset/Asset.java
2007-11-07 19:39:20 UTC (rev 5713)
@@ -24,6 +24,7 @@
import com.xpn.xwiki.doc.XWikiAttachment;
import com.xpn.xwiki.XWikiContext;
import com.xpn.xwiki.XWikiException;
+import com.xpn.xwiki.objects.BaseObject;
import java.io.InputStream;
import java.io.IOException;
@@ -51,4 +52,65 @@
return (title == null || title.length() == 0) ? "Untitled" : title;
}
+
+ public void changeOwnership(String newUser) {
+ if (hasProgrammingRights()) {
+ XWikiDocument assetDoc = getDoc();
+ assetDoc.setCreator(newUser);
+ }
+ }
+
+ /**
+ * Set the rights objects based on the current right setting
+ *
+ * @throws XWikiException
+ */
+ public void applyRightsPolicy() throws XWikiException {
+ applyRightsPolicy(null);
+ }
+
+ /**
+ * Set the rights object based on the right in param or the current right
setting if null
+ *
+ * @param right
+ * @throws XWikiException
+ */
+ public void applyRightsPolicy(String right) throws XWikiException {
+ XWikiDocument assetDoc = getDoc();
+ assetDoc.removeObjects("XWiki.XWikiRights");
+
+ BaseObject assetObj = assetDoc.getObject("XWiki.AssetClass");
+ String rights;
+
+ if (right == null)
+ rights = assetObj.getStringValue("rights");
+ else {
+ rights = right;
+ assetObj.setStringValue("rights", right);
+ }
+
+ BaseObject rightObj = assetDoc.newObject("XWiki.XWikiRights", context);
+ rightObj.setStringValue("groups", "XWiki.XWikiAdminGroup");
+ rightObj.setStringValue("levels", "edit");
+ rightObj.setIntValue("allow", 1);
+
+ rightObj = assetDoc.newObject("XWiki.XWikiRights", context);
+ rightObj.setStringValue("users", ("".equals(assetDoc.getCreator())) ?
context.getUser() : assetDoc.getCreator());
+ rightObj.setStringValue("levels", "edit");
+ rightObj.setIntValue("allow", 1);
+
+ if (rights != null && rights.equals("public")) {
+ rightObj = assetDoc.newObject("XWiki.XWikiRights", context);
+ rightObj.setStringValue("groups", "XWiki.XWikiAllGroup");
+ rightObj.setStringValue("levels", "edit");
+ rightObj.setIntValue("allow", 1);
+ } else if (rights != null && rights.equals("members")) {
+
+ } else {
+ rightObj = assetDoc.newObject("XWiki.XWikiRights", context);
+ rightObj.setStringValue("users",
("".equals(assetDoc.getCreator())) ? context.getUser() : assetDoc.getCreator());
+ rightObj.setStringValue("levels", "view");
+ rightObj.setIntValue("allow", 1);
+ }
+ }
}
_______________________________________________
notifications mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/notifications