remm 01/03/18 16:55:50
Modified: src/webdav/server/org/apache/slide/webdav/method
PropFindMethod.java
Log:
- Supports DAV:acl-semantics property.
Revision Changes Path
1.13 +45 -4
jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/PropFindMethod.java
Index: PropFindMethod.java
===================================================================
RCS file:
/home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/PropFindMethod.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- PropFindMethod.java 2001/03/18 21:55:03 1.12
+++ PropFindMethod.java 2001/03/19 00:55:50 1.13
@@ -1,7 +1,7 @@
/*
- * $Header:
/home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/PropFindMethod.java,v
1.12 2001/03/18 21:55:03 remm Exp $
- * $Revision: 1.12 $
- * $Date: 2001/03/18 21:55:03 $
+ * $Header:
/home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/PropFindMethod.java,v
1.13 2001/03/19 00:55:50 remm Exp $
+ * $Revision: 1.13 $
+ * $Date: 2001/03/19 00:55:50 $
*
* ====================================================================
*
@@ -171,6 +171,24 @@
/**
+ * ACL semantics.
+ */
+ private static final String SLIDE_ACL_SEMANTICS =
+ "<acl-sem>"
+ + "<ace-combination><no-deny/></ace-combination>"
+ + "</acl-sem>"
+ + "<acl-sem>"
+ + "<required-principal><href/></required-principal>"
+ + "</acl-sem>"
+ + "<acl-sem>"
+ + "<required-principal><self/></required-principal>"
+ + "</acl-sem>"
+ + "<acl-sem>"
+ + "<required-principal><all/></required-principal>"
+ + "</acl-sem>";
+
+
+ /**
* Current user privilege set.
*/
private static final String CURRENT_USER_PRIVILEGE_SET =
@@ -178,6 +196,12 @@
/**
+ * ACL semantics.
+ */
+ private static final String ACL_SEMANTICS = "acl-semantics";
+
+
+ /**
* ACL.
*/
private static final String ACL = "acl";
@@ -607,6 +631,7 @@
showSupportedPrivilegeSet(generatedXML);
showCurrentUserPrivilegeSet(object, generatedXML);
showAcl(object, generatedXML);
+ showAclSemantics(generatedXML);
// Other properties
Enumeration propertyList =
@@ -674,6 +699,8 @@
XMLPrinter.NO_CONTENT);
generatedXML.writeElement(null, "acl",
XMLPrinter.NO_CONTENT);
+ generatedXML.writeElement(null, ACL_SEMANTICS,
+ XMLPrinter.NO_CONTENT);
// Then, add this resource's custom properties
propertyList = revisionDescriptor.enumerateProperties();
@@ -749,6 +776,10 @@
(propertyNamespace.equals
(NodeProperty.DEFAULT_NAMESPACE))) {
showAcl(object, generatedXML);
+ } else if ((propertyName.equals(ACL_SEMANTICS)) &&
+ (propertyNamespace.equals
+ (NodeProperty.DEFAULT_NAMESPACE))) {
+ showAclSemantics(generatedXML);
} else {
// Search in the custom properties
@@ -1402,7 +1433,7 @@
if (principal.equals("~")) {
generatedXML.writeElement(null, "self", XMLPrinter.NO_CONTENT);
} if (principal.equals("nobody")) {
- generatedXML.writeElement(null, "unauthenticated",
+ generatedXML.writeElement(null, "all",
XMLPrinter.NO_CONTENT);
} else {
generatedXML.writeElement(null, "href", XMLPrinter.OPENING);
@@ -1426,6 +1457,16 @@
XMLPrinter.NO_CONTENT);
}
generatedXML.writeElement(null, PRIVILEGE, XMLPrinter.CLOSING);
+ }
+
+
+ /**
+ * WebDAV ACL DAV:acl-semantics property.
+ */
+ private void showAclSemantics(XMLPrinter generatedXML) {
+ generatedXML.writeElement(null, ACL_SEMANTICS, XMLPrinter.OPENING);
+ generatedXML.writeText(SLIDE_ACL_SEMANTICS);
+ generatedXML.writeElement(null, ACL_SEMANTICS, XMLPrinter.CLOSING);
}