You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by ol...@apache.org on 2011/11/02 23:29:30 UTC

svn commit: r1196834 - /archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/archiva/webdav/ArchivaDavResourceFactory.java

Author: olamy
Date: Wed Nov  2 22:29:30 2011
New Revision: 1196834

URL: http://svn.apache.org/viewvc?rev=1196834&view=rev
Log:
do not display index directory in case of group

Modified:
    archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/archiva/webdav/ArchivaDavResourceFactory.java

Modified: archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/archiva/webdav/ArchivaDavResourceFactory.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/archiva/webdav/ArchivaDavResourceFactory.java?rev=1196834&r1=1196833&r2=1196834&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/archiva/webdav/ArchivaDavResourceFactory.java (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/archiva/webdav/ArchivaDavResourceFactory.java Wed Nov  2 22:29:30 2011
@@ -50,6 +50,7 @@ import org.apache.archiva.webdav.util.Mi
 import org.apache.archiva.webdav.util.RepositoryPathUtil;
 import org.apache.archiva.webdav.util.WebdavMethodUtil;
 import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.FilenameUtils;
 import org.apache.commons.lang.StringUtils;
 import org.apache.jackrabbit.webdav.DavException;
 import org.apache.jackrabbit.webdav.DavResource;
@@ -948,49 +949,69 @@ public class ArchivaDavResourceFactory
                 File resourceFile = new File( managedRepository.getRepoRoot(), logicalResource.getPath() );
                 if ( resourceFile.exists() )
                 {
-                    // for prompted authentication
-                    if ( httpAuth.getSecuritySession( request.getSession( true ) ) != null )
+                    // in case of group displaying index directory doesn't have sense !!
+                    String repoIndexDirectory = managedRepository.getRepository().getIndexDirectory();
+                    if ( !new File( repoIndexDirectory ).isAbsolute() )
                     {
-                        try
+                        repoIndexDirectory = new File( managedRepository.getRepository().getLocation(),
+                                                       StringUtils.isEmpty( repoIndexDirectory )
+                                                           ? ".indexer"
+                                                           : repoIndexDirectory ).getAbsolutePath();
+                    }
+                    if ( StringUtils.isEmpty( repoIndexDirectory ) )
+                    {
+                        repoIndexDirectory =
+                            new File( managedRepository.getRepository().getLocation(), ".indexer" ).getAbsolutePath();
+                    }
+
+                    if ( !StringUtils.equals( FilenameUtils.normalize( repoIndexDirectory ),
+                                              FilenameUtils.normalize( resourceFile.getAbsolutePath() ) ) )
+                    {
+                        // for prompted authentication
+                        if ( httpAuth.getSecuritySession( request.getSession( true ) ) != null )
                         {
-                            if ( isAuthorized( request, repository ) )
+                            try
                             {
-                                mergedRepositoryContents.add( resourceFile );
-                                log.debug( "Repository '{}' accessed by '{}'", repository, activePrincipal );
+                                if ( isAuthorized( request, repository ) )
+                                {
+                                    mergedRepositoryContents.add( resourceFile );
+                                    log.debug( "Repository '{}' accessed by '{}'", repository, activePrincipal );
+                                }
                             }
-                        }
-                        catch ( DavException e )
-                        {
-                            // TODO: review exception handling
-                            if ( log.isDebugEnabled() )
+                            catch ( DavException e )
                             {
-                                log.debug(
-                                    "Skipping repository '" + managedRepository + "' for user '" + activePrincipal
-                                        + "': " + e.getMessage() );
+                                // TODO: review exception handling
+                                if ( log.isDebugEnabled() )
+                                {
+                                    log.debug(
+                                        "Skipping repository '" + managedRepository + "' for user '" + activePrincipal
+                                            + "': " + e.getMessage() );
+                                }
                             }
+
                         }
-                    }
-                    else
-                    {
-                        // for the current user logged in
-                        try
+                        else
                         {
-                            if ( servletAuth.isAuthorized( activePrincipal, repository,
-                                                           WebdavMethodUtil.getMethodPermission(
-                                                               request.getMethod() ) ) )
+                            // for the current user logged in
+                            try
                             {
-                                mergedRepositoryContents.add( resourceFile );
-                                log.debug( "Repository '{}' accessed by '{}'", repository, activePrincipal );
+                                if ( servletAuth.isAuthorized( activePrincipal, repository,
+                                                               WebdavMethodUtil.getMethodPermission(
+                                                                   request.getMethod() ) ) )
+                                {
+                                    mergedRepositoryContents.add( resourceFile );
+                                    log.debug( "Repository '{}' accessed by '{}'", repository, activePrincipal );
+                                }
                             }
-                        }
-                        catch ( UnauthorizedException e )
-                        {
-                            // TODO: review exception handling
-                            if ( log.isDebugEnabled() )
+                            catch ( UnauthorizedException e )
                             {
-                                log.debug(
-                                    "Skipping repository '" + managedRepository + "' for user '" + activePrincipal
-                                        + "': " + e.getMessage() );
+                                // TODO: review exception handling
+                                if ( log.isDebugEnabled() )
+                                {
+                                    log.debug(
+                                        "Skipping repository '" + managedRepository + "' for user '" + activePrincipal
+                                            + "': " + e.getMessage() );
+                                }
                             }
                         }
                     }