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);
  +        }
  +        
  +    }
       
       
       /**