dirkv       01/07/13 06:05:37

  Modified:    src/webdav/client/src/org/apache/webdav/cmd Slide.java
  Log:
  auto-complete the principal for grant, deny & revoke
  
  Revision  Changes    Path
  1.32      +17 -3     
jakarta-slide/src/webdav/client/src/org/apache/webdav/cmd/Slide.java
  
  Index: Slide.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-slide/src/webdav/client/src/org/apache/webdav/cmd/Slide.java,v
  retrieving revision 1.31
  retrieving revision 1.32
  diff -u -r1.31 -r1.32
  --- Slide.java        2001/07/13 12:37:14     1.31
  +++ Slide.java        2001/07/13 13:05:26     1.32
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-slide/src/webdav/client/src/org/apache/webdav/cmd/Slide.java,v 1.31 
2001/07/13 12:37:14 dirkv Exp $
  - * $Revision: 1.31 $
  - * $Date: 2001/07/13 12:37:14 $
  + * $Header: 
/home/cvs/jakarta-slide/src/webdav/client/src/org/apache/webdav/cmd/Slide.java,v 1.32 
2001/07/13 13:05:26 dirkv Exp $
  + * $Revision: 1.32 $
  + * $Date: 2001/07/13 13:05:26 $
    *
    * ====================================================================
    *
  @@ -868,6 +868,7 @@
                                                        continue;
                                                }
                                        }
  +                                     
principal=checkPrincipal(principal,webdavResource,path);
                                        grant(webdavResource, namespace, permission, 
path, principal);
                   } else
                   if (todo.equalsIgnoreCase("deny")) {
  @@ -918,6 +919,7 @@
                                        continue;
                                }
                        }
  +                     principal=checkPrincipal(principal,webdavResource,path);
                        deny(webdavResource, namespace, permission, path, principal);
                   } else
                   if (todo.equalsIgnoreCase("revoke")) {
  @@ -968,6 +970,7 @@
                                        continue;
                                }
                        }
  +                     principal=checkPrincipal(principal,webdavResource,path);
                        revoke(webdavResource, namespace, permission, path, principal);
                   } else
                   if (todo.equalsIgnoreCase("acl")) {
  @@ -1394,6 +1397,17 @@
           return normalize(uri);
       }
   
  +     private String checkPrincipal(String principal, WebdavResource webdavResource, 
String path) throws HttpException,IOException
  +     {
  +             // FIXME: when search support is complete enhance this
  +             //        to really search for the principal
  +             if (!principal.startsWith("/") && !principal.startsWith("http")) {
  +                     PrincipalCollectionSetProperty set = 
webdavResource.principalCollectionSetFindMethod(path);
  +                     if ((set!=null) && (set.getHrefs().length==1))
  +                             principal = set.getHrefs()[0] + "/" + principal;
  +             }
  +             return normalize(principal);
  +     }
   
       /**
        * Set the path.
  
  
  

Reply via email to