You are viewing a plain text version of this content. The canonical link for it is here.
Posted to slide-dev@jakarta.apache.org by re...@apache.org on 2001/03/26 09:04:52 UTC
cvs commit: jakarta-slide/src/share/org/apache/slide/security Security.java SecurityImpl.java
remm 01/03/25 23:04:52
Modified: src/share/org/apache/slide/security Security.java
SecurityImpl.java
Log:
- Add a new WebDAV ACL friendly method : setPermissions. All existing
permissions on the node will be removed and replaced by the specified set.
Revision Changes Path
1.14 +20 -4 jakarta-slide/src/share/org/apache/slide/security/Security.java
Index: Security.java
===================================================================
RCS file: /home/cvs/jakarta-slide/src/share/org/apache/slide/security/Security.java,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- Security.java 2001/02/26 12:51:59 1.13
+++ Security.java 2001/03/26 07:04:50 1.14
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-slide/src/share/org/apache/slide/security/Security.java,v 1.13 2001/02/26 12:51:59 juergen Exp $
- * $Revision: 1.13 $
- * $Date: 2001/02/26 12:51:59 $
+ * $Header: /home/cvs/jakarta-slide/src/share/org/apache/slide/security/Security.java,v 1.14 2001/03/26 07:04:50 remm Exp $
+ * $Revision: 1.14 $
+ * $Date: 2001/03/26 07:04:50 $
*
* ====================================================================
*
@@ -73,7 +73,7 @@
* Security helper.
*
* @author <a href="mailto:remm@apache.org">Remy Maucherat</a>
- * @version $Revision: 1.13 $
+ * @version $Revision: 1.14 $
*/
public interface Security {
@@ -107,6 +107,22 @@
* @exception AccessDeniedException Insufficent credentials
*/
Enumeration enumeratePermissions(SlideToken token, String object)
+ throws ServiceAccessException, ObjectNotFoundException,
+ AccessDeniedException;
+
+
+ /**
+ * Set a new set of permissions on an object.
+ *
+ * @param token Credentials token
+ * @param object Object on which permission is granted
+ * @exception ServiceAccessException DataSource access error
+ * @exception ObjectNotFoundException Specified object was not found
+ * in the DataSource
+ * @exception AccessDeniedException Insufficent credentials
+ */
+ void setPermissions(SlideToken token, String object,
+ Enumeration permissions)
throws ServiceAccessException, ObjectNotFoundException,
AccessDeniedException;
1.23 +38 -4 jakarta-slide/src/share/org/apache/slide/security/SecurityImpl.java
Index: SecurityImpl.java
===================================================================
RCS file: /home/cvs/jakarta-slide/src/share/org/apache/slide/security/SecurityImpl.java,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -r1.22 -r1.23
--- SecurityImpl.java 2001/03/23 07:40:54 1.22
+++ SecurityImpl.java 2001/03/26 07:04:50 1.23
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-slide/src/share/org/apache/slide/security/SecurityImpl.java,v 1.22 2001/03/23 07:40:54 remm Exp $
- * $Revision: 1.22 $
- * $Date: 2001/03/23 07:40:54 $
+ * $Header: /home/cvs/jakarta-slide/src/share/org/apache/slide/security/SecurityImpl.java,v 1.23 2001/03/26 07:04:50 remm Exp $
+ * $Revision: 1.23 $
+ * $Date: 2001/03/26 07:04:50 $
*
* ====================================================================
*
@@ -77,7 +77,7 @@
* Security helper.
*
* @author <a href="mailto:remm@apache.org">Remy Maucherat</a>
- * @version $Revision: 1.22 $
+ * @version $Revision: 1.23 $
*/
public final class SecurityImpl implements Security {
@@ -121,6 +121,40 @@
// ------------------------------------------------------- Security Methods
+
+
+ /**
+ * Set a new set of permissions on an object.
+ *
+ * @param token Credentials token
+ * @param object Object on which permission is granted
+ * @exception ServiceAccessException DataSource access error
+ * @exception ObjectNotFoundException Specified object was not found
+ * in the DataSource
+ * @exception AccessDeniedException Insufficent credentials
+ */
+ public void setPermissions(SlideToken token, String object,
+ Enumeration permissions)
+ throws ServiceAccessException, ObjectNotFoundException,
+ AccessDeniedException {
+
+ Uri objectUri = namespace.getUri(object);
+ ObjectNode objectNode = objectUri.getStore().retrieveObject(objectUri);
+
+ checkCredentials(token, objectNode,
+ namespaceConfig.getGrantPermissionAction());
+ checkCredentials(token, objectNode,
+ namespaceConfig.getRevokePermissionAction());
+
+ objectUri.getStore().revokePermissions(objectUri);
+
+ while (permissions.hasMoreElements()) {
+ NodePermission permission =
+ (NodePermission) permissions.nextElement();
+ objectUri.getStore().grantPermission(objectUri, permission);
+ }
+
+ }
/**