[prev in list] [next in list] [prev in thread] [next in thread] 

List:       slide-dev
Subject:    cvs commit: jakarta-slide/src/share/org/apache/slide/security Security.java SecurityImpl.java
From:       juergen () apache ! org
Date:       2001-02-26 12:52:00
[Download RAW message or body]

juergen     01/02/26 04:52:00

  Modified:    src/share/org/apache/slide/macro MacroImpl.java
               src/share/org/apache/slide/common
                        NamespaceAccessTokenImpl.java
               src/share/org/apache/slide/security Security.java
                        SecurityImpl.java
  Log:
  in case of a non versioned resource (this is default) a delete removes all the \
entries in the child stores (e.g. lock, security, rd, rds)  
  Revision  Changes    Path
  1.11      +49 -25    jakarta-slide/src/share/org/apache/slide/macro/MacroImpl.java
  
  Index: MacroImpl.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/src/share/org/apache/slide/macro/MacroImpl.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- MacroImpl.java	2001/02/19 17:04:42	1.10
  +++ MacroImpl.java	2001/02/26 12:51:57	1.11
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-slide/src/share/org/apache/slide/macro/MacroImpl.java,v \
                1.10 2001/02/19 17:04:42 juergen Exp $
  - * $Revision: 1.10 $
  - * $Date: 2001/02/19 17:04:42 $
  + * $Header: /home/cvs/jakarta-slide/src/share/org/apache/slide/macro/MacroImpl.java,v \
1.11 2001/02/26 12:51:57 juergen Exp $  + * $Revision: 1.11 $
  + * $Date: 2001/02/26 12:51:57 $
    *
    * ====================================================================
    *
  @@ -71,12 +71,13 @@
   import org.apache.slide.structure.*;
   import org.apache.slide.security.*;
   import org.apache.slide.content.*;
  +import org.apache.slide.lock.*;
   
   /**
    * Macro helper class.
    *
    * @author <a href="mailto:remm@apache.org">Remy Maucherat</a>
  - * @version $Revision: 1.10 $
  + * @version $Revision: 1.11 $
    */
   public final class MacroImpl implements Macro {
       
  @@ -94,12 +95,14 @@
        */
       public MacroImpl(Namespace namespace, NamespaceConfig namespaceConfig,
                        Security securityHelper, Content contentHelper,
  -                     Structure structureHelper) {
  -        this.namespace = namespace;
  +                     Structure structureHelper,
  +                     Lock lockHelper) {
  +        this.namespace       = namespace;
           this.namespaceConfig = namespaceConfig;
  -        this.securityHelper = securityHelper;
  -        this.contentHelper = contentHelper;
  +        this.securityHelper  = securityHelper;
  +        this.contentHelper   = contentHelper;
           this.structureHelper = structureHelper;
  +        this.lockHelper      = lockHelper;
       }
       
       
  @@ -136,6 +139,12 @@
       private Security securityHelper;
       
       
  +    /**
  +     * Lock helper.
  +     */
  +    private Lock lockHelper;
  +    
  +    
       // ---------------------------------------------------------- Macro Methods
       
       
  @@ -411,28 +420,43 @@
               if (currentObject.hasChildren()) {
                   Enumeration children = currentObject.enumerateChildren();
                   while (children.hasMoreElements()) {
  -                    deleteObject(token, (String) children.nextElement(),
  -                                 e);
  +                    deleteObject(token, (String) children.nextElement(), e);
                   }
               }
               
  -            // Removing object
  -            structureHelper.remove(token, currentObject);
  +            
  +            // Removing all revisions
  +            NodeRevisionDescriptors revisionDescriptors =
  +                contentHelper.retrieve(token, targetUri);
  +            
  +            // if the object is not revisioned remove it completely
  +            // from it's associated stores
  +            if (!revisionDescriptors.isVersioned()) {
  +                // remove the associated locks
  +                Enumeration locks = lockHelper.enumerateLocks(token, targetUri);
  +                while (locks.hasMoreElements()) {
  +                    lockHelper.unlock(token, (NodeLock) locks.nextElement());
  +                }
  +                // remove the associated security
  +                Enumeration permissions = \
securityHelper.enumeratePermissions(token, targetUri);  +                while \
(permissions.hasMoreElements()) {  +                    NodePermission permission = \
(NodePermission) permissions.nextElement();  +                    \
securityHelper.revokePermission(token, permission);  +                }
  +                // remove the NodeRevisionDescriptor and associated content
  +                if (revisionDescriptors.hasRevisions()) {
  +                    contentHelper.remove(token, targetUri,
  +                                         \
revisionDescriptors.getInitialRevision());  +                }
  +
  +                // remove the NodeRevisionDescriptors object
  +                contentHelper.remove(token, revisionDescriptors);
  +          
  +            }
               
  -            // TODO : Remove permissions
  +            // Removing object.
  +            structureHelper.remove(token, currentObject);
               
  -            /*
  -              try {
  -              NodeProperties properties =
  -              structureHelper.retrieve(token, currentObject);
  -              structureHelper.remove(token, properties);
  -              structureHelper.remove(token, currentObject);
  -              } catch(StructureException ex) {
  -              // Perhaps there were no properties associated with
  -              // this object ...
  -              ex.printStackTrace();
  -              }
  -            */
               
           } catch (SlideException ex) {
               e.addException(ex);
  
  
  
  1.13      +6 -5      \
jakarta-slide/src/share/org/apache/slide/common/NamespaceAccessTokenImpl.java  
  Index: NamespaceAccessTokenImpl.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/src/share/org/apache/slide/common/NamespaceAccessTokenImpl.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- NamespaceAccessTokenImpl.java	2001/02/26 12:49:20	1.12
  +++ NamespaceAccessTokenImpl.java	2001/02/26 12:51:58	1.13
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-slide/src/share/org/apache/slide/common/NamespaceAccessTokenImpl.java,v \
                1.12 2001/02/26 12:49:20 juergen Exp $
  - * $Revision: 1.12 $
  - * $Date: 2001/02/26 12:49:20 $
  + * $Header: /home/cvs/jakarta-slide/src/share/org/apache/slide/common/NamespaceAccessTokenImpl.java,v \
1.13 2001/02/26 12:51:58 juergen Exp $  + * $Revision: 1.13 $
  + * $Date: 2001/02/26 12:51:58 $
    *
    * ====================================================================
    *
  @@ -106,7 +106,7 @@
    * Namespace access token implementation.
    *
    * @author <a href="mailto:remm@apache.org">Remy Maucherat</a>
  - * @version $Revision: 1.12 $
  + * @version $Revision: 1.13 $
    */
   public final class NamespaceAccessTokenImpl implements NamespaceAccessToken {
       
  @@ -132,7 +132,7 @@
                               structureHelper, lockHelper);
           macroHelper =
               new MacroImpl(namespace, namespace.getConfig(), securityHelper,
  -                          contentHelper, structureHelper);
  +                          contentHelper, structureHelper, lockHelper);
       }
        
       
  @@ -460,4 +460,5 @@
       
       
   }
  +
   
  
  
  
  1.13      +17 -0     \
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.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- Security.java	2001/02/26 12:47:22	1.12
  +++ Security.java	2001/02/26 12:51:59	1.13
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-slide/src/share/org/apache/slide/security/Security.java,v \
                1.12 2001/02/26 12:47:22 juergen Exp $
  - * $Revision: 1.12 $
  - * $Date: 2001/02/26 12:47:22 $
  + * $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 $
    *
    * ====================================================================
    *
  @@ -73,7 +73,7 @@
    * Security helper.
    *
    * @author <a href="mailto:remm@apache.org">Remy Maucherat</a>
  - * @version $Revision: 1.12 $
  + * @version $Revision: 1.13 $
    */
   public interface Security {
       
  @@ -235,6 +235,23 @@
                             SubjectNode subject, ActionNode action)
           throws ServiceAccessException, ObjectNotFoundException,
           AccessDeniedException;
  +    
  +    
  +    /**
  +     * Revokes a permission.
  +     *
  +     * @param token Credentials token
  +     * @param permission Permission to be removed
  +     * @exception ServiceAccessException DataSource access error
  +     * @exception ObjectNotFoundException Specified object was not found
  +     * in the DataSource
  +     * @exception AccessDeniedException Insufficent credentials
  +     */
  +    public void revokePermission(SlideToken token, NodePermission permission)
  +        throws ServiceAccessException, ObjectNotFoundException,
  +        AccessDeniedException;
  +            
  +    
        
       
       /**
  
  
  
  1.20      +23 -0     \
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.19
  retrieving revision 1.20
  diff -u -r1.19 -r1.20
  --- SecurityImpl.java	2001/02/26 12:45:14	1.19
  +++ SecurityImpl.java	2001/02/26 12:52:00	1.20
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-slide/src/share/org/apache/slide/security/SecurityImpl.java,v \
                1.19 2001/02/26 12:45:14 juergen Exp $
  - * $Revision: 1.19 $
  - * $Date: 2001/02/26 12:45:14 $
  + * $Header: /home/cvs/jakarta-slide/src/share/org/apache/slide/security/SecurityImpl.java,v \
1.20 2001/02/26 12:52:00 juergen Exp $  + * $Revision: 1.20 $
  + * $Date: 2001/02/26 12:52:00 $
    *
    * ====================================================================
    *
  @@ -75,7 +75,7 @@
    * Security helper.
    *
    * @author <a href="mailto:remm@apache.org">Remy Maucherat</a>
  - * @version $Revision: 1.19 $
  + * @version $Revision: 1.20 $
    */
   public final class SecurityImpl implements Security {
       
  @@ -292,6 +292,29 @@
           Uri objectUri = namespace.getUri(object.getUri());
           objectUri.getStore()
               .revokePermission(objectUri, permission);
  +    }
  +    
  +    
  +    
  +    /**
  +     * Revokes a permission.
  +     *
  +     * @param token Credentials token
  +     * @param permission Permission to be removed
  +     * @exception ServiceAccessException DataSource access error
  +     * @exception ObjectNotFoundException Specified object was not found
  +     * in the DataSource
  +     * @exception AccessDeniedException Insufficent credentials
  +     */
  +    public void revokePermission(SlideToken token, NodePermission permission)
  +        throws ServiceAccessException, ObjectNotFoundException,
  +        AccessDeniedException {
  +            
  +        Uri objectUri = namespace.getUri(permission.getObjectUri());
  +        ObjectNode object = objectUri.getStore().retrieveObject(objectUri);
  +            
  +        checkCredentials(token, object, \
namespaceConfig.getRevokePermissionAction());  +        \
objectUri.getStore().revokePermission(objectUri, permission);  }
       
       
  
  
  


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic