Author: olamy
Date: Fri Mar 16 16:08:52 2012
New Revision: 1301615

URL: http://svn.apache.org/viewvc?rev=1301615&view=rev
Log:
use selected repository to get versionList and projectMetadata

Modified:
    
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/BrowseService.java
    
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultBrowseService.java
    
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/search.js

Modified: 
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/BrowseService.java
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/BrowseService.java?rev=1301615&r1=1301614&r2=1301615&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/BrowseService.java
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/BrowseService.java
 Fri Mar 16 16:08:52 2012
@@ -58,7 +58,8 @@ public interface BrowseService
     @GET
     @Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML } )
     @RedbackAuthorization( noPermission = true, noRestriction = true )
-    VersionsList getVersionsList( @PathParam( "g" ) String groupId, 
@PathParam( "a" ) String artifactId )
+    VersionsList getVersionsList( @PathParam( "g" ) String groupId, 
@PathParam( "a" ) String artifactId,
+                                  @QueryParam( "repositoryId" ) String 
repositoryId )
         throws ArchivaRestServiceException;
 
     @Path( "projectVersionMetadata/{g}/{a}" )
@@ -66,7 +67,8 @@ public interface BrowseService
     @Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML } )
     @RedbackAuthorization( noPermission = true, noRestriction = true )
     ProjectVersionMetadata getProjectVersionMetadata( @PathParam( "g" ) String 
groupId,
-                                                      @PathParam( "a" ) String 
artifactId )
+                                                      @PathParam( "a" ) String 
artifactId,
+                                                      @QueryParam( 
"repositoryId" ) String repositoryId )
         throws ArchivaRestServiceException;
 
     @Path( "userRepositories" )

Modified: 
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultBrowseService.java
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultBrowseService.java?rev=1301615&r1=1301614&r2=1301615&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultBrowseService.java
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultBrowseService.java
 Fri Mar 16 16:08:52 2012
@@ -189,7 +189,7 @@ public class DefaultBrowseService
 
     }
 
-    public VersionsList getVersionsList( String groupId, String artifactId )
+    public VersionsList getVersionsList( String groupId, String artifactId, 
String repositoryId )
         throws ArchivaRestServiceException
     {
         List<String> selectedRepos = getObservableRepos();
@@ -199,6 +199,17 @@ public class DefaultBrowseService
             return new VersionsList();
         }
 
+        if ( StringUtils.isNotEmpty( repositoryId ) )
+        {
+            // check user has karma on the repository
+            if ( !selectedRepos.contains( repositoryId ) )
+            {
+                throw new ArchivaRestServiceException( 
"browse.root.groups.repositoy.denied",
+                                                       
Response.Status.FORBIDDEN.getStatusCode() );
+            }
+            selectedRepos = Collections.singletonList( repositoryId );
+        }
+
         try
         {
             return new VersionsList( new ArrayList<String>( getVersions( 
selectedRepos, groupId, artifactId ) ) );
@@ -240,7 +251,7 @@ public class DefaultBrowseService
         }
     }
 
-    public ProjectVersionMetadata getProjectVersionMetadata( String groupId, 
String artifactId )
+    public ProjectVersionMetadata getProjectVersionMetadata( String groupId, 
String artifactId, String repositoryId )
         throws ArchivaRestServiceException
     {
 
@@ -252,6 +263,17 @@ public class DefaultBrowseService
             return null;
         }
 
+        if ( StringUtils.isNotEmpty( repositoryId ) )
+        {
+            // check user has karma on the repository
+            if ( !selectedRepos.contains( repositoryId ) )
+            {
+                throw new ArchivaRestServiceException( 
"browse.root.groups.repositoy.denied",
+                                                       
Response.Status.FORBIDDEN.getStatusCode() );
+            }
+            selectedRepos = Collections.singletonList( repositoryId );
+        }
+
         RepositorySession repositorySession = null;
         try
         {

Modified: 
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/search.js
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/search.js?rev=1301615&r1=1301614&r2=1301615&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/search.js
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/search.js
 Fri Mar 16 16:08:52 2012
@@ -148,12 +148,19 @@ $(function() {
       mainContent.find("#browse_artifact").show();
       mainContent.find("#browse_artifact").html(mediumSpinnerImg());
       mainContent.find("#main_browse_result_content").show();
-      
$.ajax("restServices/archivaServices/browseService/projectVersionMetadata/"+encodeURIComponent(groupId)+"/"+encodeURIComponent(artifactId),
 {
+      var 
metadataUrl="restServices/archivaServices/browseService/projectVersionMetadata/"+encodeURIComponent(groupId)+"/"+encodeURIComponent(artifactId);
+      var 
versionsListUrl="restServices/archivaServices/browseService/versionsList/"+encodeURIComponent(groupId)+"/"+encodeURIComponent(artifactId);
+      var selectedRepo=getSelectedBrowsingRepository();
+      if (selectedRepo){
+        metadataUrl+="?repositoryId="+encodeURIComponent(selectedRepo);
+        versionsListUrl+="?repositoryId="+encodeURIComponent(selectedRepo);
+      }
+      $.ajax(metadataUrl, {
         type: "GET",
         dataType: 'json',
         success: function(data) {
           
artifactDetailViewModel.projectVersionMetadata=mapProjectVersionMetadata(data);
-          
$.ajax("restServices/archivaServices/browseService/versionsList/"+encodeURIComponent(groupId)+"/"+encodeURIComponent(artifactId),
 {
+          $.ajax(versionsListUrl, {
             type: "GET",
             dataType: 'json',
             success: function(data) {


Reply via email to