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

Reply via email to