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 2016/09/16 00:06:23 UTC
[1/3] archiva git commit: Changing upload permissions using parameter
reference
Repository: archiva
Updated Branches:
refs/heads/master d82d39c39 -> 5bc8ad7de
Changing upload permissions using parameter reference
Needs the new functionality in the redback annotations.
Project: http://git-wip-us.apache.org/repos/asf/archiva/repo
Commit: http://git-wip-us.apache.org/repos/asf/archiva/commit/d01764be
Tree: http://git-wip-us.apache.org/repos/asf/archiva/tree/d01764be
Diff: http://git-wip-us.apache.org/repos/asf/archiva/diff/d01764be
Branch: refs/heads/master
Commit: d01764bed989abc53c20cb79723e59ae390f454a
Parents: d82d39c
Author: Martin Stockhammer <m....@web.de>
Authored: Wed Sep 14 21:48:59 2016 +0200
Committer: Martin Stockhammer <m....@web.de>
Committed: Wed Sep 14 21:48:59 2016 +0200
----------------------------------------------------------------------
.../main/java/org/apache/archiva/web/api/FileUploadService.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/archiva/blob/d01764be/archiva-modules/archiva-web/archiva-web-common/src/main/java/org/apache/archiva/web/api/FileUploadService.java
----------------------------------------------------------------------
diff --git a/archiva-modules/archiva-web/archiva-web-common/src/main/java/org/apache/archiva/web/api/FileUploadService.java b/archiva-modules/archiva-web/archiva-web-common/src/main/java/org/apache/archiva/web/api/FileUploadService.java
index d95db3d..cf21a30 100644
--- a/archiva-modules/archiva-web/archiva-web-common/src/main/java/org/apache/archiva/web/api/FileUploadService.java
+++ b/archiva-modules/archiva-web/archiva-web-common/src/main/java/org/apache/archiva/web/api/FileUploadService.java
@@ -70,7 +70,7 @@ public interface FileUploadService
@Path( "save/{repositoryId}/{groupId}/{artifactId}/{version}/{packaging}" )
@GET
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML } )
- @RedbackAuthorization( permissions = ArchivaRoleConstants.OPERATION_REPOSITORY_UPLOAD )
+ @RedbackAuthorization( resource = "{repositoryId}", permissions = ArchivaRoleConstants.OPERATION_REPOSITORY_UPLOAD )
Boolean save( @PathParam( "repositoryId" ) String repositoryId, @PathParam( "groupId" ) String groupId,
@PathParam( "artifactId" ) String artifactId, @PathParam( "version" ) String version,
@PathParam( "packaging" ) String packaging, @QueryParam( "generatePom" ) boolean generatePom )
[3/3] archiva git commit: Adding test case for repository listing
Posted by ol...@apache.org.
Adding test case for repository listing
Project: http://git-wip-us.apache.org/repos/asf/archiva/repo
Commit: http://git-wip-us.apache.org/repos/asf/archiva/commit/5bc8ad7d
Tree: http://git-wip-us.apache.org/repos/asf/archiva/tree/5bc8ad7d
Diff: http://git-wip-us.apache.org/repos/asf/archiva/diff/5bc8ad7d
Branch: refs/heads/master
Commit: 5bc8ad7de352acb025fefb2e39967abf94163b3b
Parents: de3eb83
Author: Martin Stockhammer <m....@web.de>
Authored: Wed Sep 14 23:04:03 2016 +0200
Committer: Martin Stockhammer <m....@web.de>
Committed: Wed Sep 14 23:04:03 2016 +0200
----------------------------------------------------------------------
.../rest/services/BrowseServiceTest.java | 52 ++++++++++++++++++--
1 file changed, 49 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/archiva/blob/5bc8ad7d/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/BrowseServiceTest.java
----------------------------------------------------------------------
diff --git a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/BrowseServiceTest.java b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/BrowseServiceTest.java
index 7ee34c6..f6e5885 100644
--- a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/BrowseServiceTest.java
+++ b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/BrowseServiceTest.java
@@ -18,8 +18,10 @@ package org.apache.archiva.rest.services;
* under the License.
*/
+import org.apache.archiva.admin.model.beans.ManagedRepository;
import org.apache.archiva.maven2.model.Artifact;
import org.apache.archiva.metadata.model.ProjectVersionMetadata;
+import org.apache.archiva.redback.rest.api.model.Role;
import org.apache.archiva.redback.rest.api.services.RedbackServiceException;
import org.apache.archiva.rest.api.model.ArtifactContentEntry;
import org.apache.archiva.rest.api.model.BrowseResult;
@@ -38,9 +40,7 @@ import org.junit.Test;
import javax.ws.rs.core.MediaType;
import java.io.File;
import java.io.IOException;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
import static org.assertj.core.api.Assertions.assertThat;
@@ -154,6 +154,52 @@ public class BrowseServiceTest
new BrowseResultEntry( "org.apache.karaf.features", false ) );
}
+ @Test
+ public void listUserRepositories()
+ throws Exception
+ {
+ initSourceTargetRepo();
+ BrowseService browseService = getBrowseService( authorizationHeader, false );
+
+ List<ManagedRepository> browseResult = browseService.getUserRepositories();
+ assertThat( browseResult )
+ .isNotNull()
+ .isNotEmpty()
+ .hasSize(5);
+ List<String> repIds = new ArrayList<>();
+ for(ManagedRepository rep : browseResult) {
+ repIds.add(rep.getId());
+ }
+ assertThat(repIds).contains("internal","snapshots","test-repo","test-copy-target","test-origin-repo");
+
+ }
+
+
+ @Test
+ public void listUserManagableRepositories()
+ throws Exception
+ {
+ initSourceTargetRepo();
+ // Giving the guest user a manager role
+ String name = "Repository Manager - internal";
+ Role role = getRoleManagementService( authorizationHeader ).getRole( name );
+ role.setUsers( Arrays.asList( getUserService( authorizationHeader ).getUser( "guest" ) ) );
+ getRoleManagementService( authorizationHeader ).updateRoleUsers( role );
+
+ // browseService with guest user
+ BrowseService browseService = getBrowseService( "", false );
+
+ List<ManagedRepository> browseResult = browseService.getUserManagableRepositories();
+ assertThat( browseResult )
+ .isNotNull()
+ .isNotEmpty().hasSize(1);
+ List<String> repIds = new ArrayList<>();
+ for(ManagedRepository rep : browseResult) {
+ repIds.add(rep.getId());
+ }
+ assertThat(repIds).contains("internal");
+
+ }
@Test
public void browsegroupIdWithReleaseStartNumber()
[2/3] archiva git commit: Adding restricted view for user managable
repositories
Posted by ol...@apache.org.
Adding restricted view for user managable repositories
Adds additional rest method to list the repositories where the user
has manage permissions.
Restricts the view for uploads to only managable repositories.
Project: http://git-wip-us.apache.org/repos/asf/archiva/repo
Commit: http://git-wip-us.apache.org/repos/asf/archiva/commit/de3eb832
Tree: http://git-wip-us.apache.org/repos/asf/archiva/tree/de3eb832
Diff: http://git-wip-us.apache.org/repos/asf/archiva/diff/de3eb832
Branch: refs/heads/master
Commit: de3eb83242b42d75546670e8859cdb1f59fe4fa6
Parents: d01764b
Author: Martin Stockhammer <m....@web.de>
Authored: Wed Sep 14 21:49:30 2016 +0200
Committer: Martin Stockhammer <m....@web.de>
Committed: Wed Sep 14 21:49:30 2016 +0200
----------------------------------------------------------------------
.../archiva/rest/api/services/BrowseService.java | 10 ++++++++++
.../archiva/rest/services/DefaultBrowseService.java | 13 +++++++++++++
.../archiva/security/DefaultUserRepositories.java | 5 +++++
.../org/apache/archiva/security/UserRepositories.java | 14 ++++++++++++++
.../apache/archiva/security/UserRepositoriesStub.java | 5 +++++
.../main/webapp/js/archiva/artifacts-management.js | 2 +-
6 files changed, 48 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/archiva/blob/de3eb832/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/BrowseService.java
----------------------------------------------------------------------
diff --git a/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/BrowseService.java b/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/BrowseService.java
index 777d15d..cdb99eb 100644
--- a/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/BrowseService.java
+++ b/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/BrowseService.java
@@ -102,6 +102,16 @@ public interface BrowseService
throws ArchivaRestServiceException;
/**
+ * @return List of repositories current user can manage
+ */
+ @Path("userManagableRepositories")
+ @GET
+ @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
+ @RedbackAuthorization(noPermission = true, noRestriction = true)
+ List<ManagedRepository> getUserManagableRepositories()
+ throws ArchivaRestServiceException;
+
+ /**
* return the dependency Tree for an artifacts
* <b>the List result has only one entry</b>
*/
http://git-wip-us.apache.org/repos/asf/archiva/blob/de3eb832/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultBrowseService.java
----------------------------------------------------------------------
diff --git a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultBrowseService.java b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultBrowseService.java
index 5e5a465..682c367 100644
--- a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultBrowseService.java
+++ b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultBrowseService.java
@@ -508,6 +508,19 @@ public class DefaultBrowseService
}
@Override
+ public List<ManagedRepository> getUserManagableRepositories() throws ArchivaRestServiceException {
+ try
+ {
+ return userRepositories.getManagableRepositories( getPrincipal() );
+ }
+ catch ( ArchivaSecurityException e )
+ {
+ throw new ArchivaRestServiceException( "repositories.read.managable.error",
+ Response.Status.INTERNAL_SERVER_ERROR.getStatusCode(), e );
+ }
+ }
+
+ @Override
public List<Artifact> getDependees( String groupId, String artifactId, String version, String repositoryId )
throws ArchivaRestServiceException
{
http://git-wip-us.apache.org/repos/asf/archiva/blob/de3eb832/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/archiva/security/DefaultUserRepositories.java
----------------------------------------------------------------------
diff --git a/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/archiva/security/DefaultUserRepositories.java b/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/archiva/security/DefaultUserRepositories.java
index 91ff5ea..4679bc7 100644
--- a/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/archiva/security/DefaultUserRepositories.java
+++ b/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/archiva/security/DefaultUserRepositories.java
@@ -99,6 +99,11 @@ public class DefaultUserRepositories
return getAccessibleRepositories( principal, ArchivaRoleConstants.OPERATION_REPOSITORY_ACCESS );
}
+ @Override
+ public List<ManagedRepository> getManagableRepositories(String principal) throws ArchivaSecurityException, AccessDeniedException, PrincipalNotFoundException {
+ return getAccessibleRepositories( principal, ArchivaRoleConstants.OPERATION_REPOSITORY_UPLOAD );
+ }
+
private List<ManagedRepository> getAccessibleRepositories( String principal, String operation )
throws ArchivaSecurityException, AccessDeniedException, PrincipalNotFoundException
{
http://git-wip-us.apache.org/repos/asf/archiva/blob/de3eb832/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/archiva/security/UserRepositories.java
----------------------------------------------------------------------
diff --git a/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/archiva/security/UserRepositories.java b/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/archiva/security/UserRepositories.java
index 6e38812..493eece 100644
--- a/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/archiva/security/UserRepositories.java
+++ b/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/archiva/security/UserRepositories.java
@@ -98,5 +98,19 @@ public interface UserRepositories
*/
List<ManagedRepository> getAccessibleRepositories( String principal )
throws ArchivaSecurityException, AccessDeniedException, PrincipalNotFoundException;
+
+ /**
+ *
+ * Returns a list of repositories for which the user has the manager role.
+ *
+ * @param principal
+ * @since 2.2.2
+ * @return
+ * @throws ArchivaSecurityException
+ * @throws AccessDeniedException
+ * @throws PrincipalNotFoundException
+ */
+ List<ManagedRepository> getManagableRepositories( String principal )
+ throws ArchivaSecurityException, AccessDeniedException, PrincipalNotFoundException;
}
http://git-wip-us.apache.org/repos/asf/archiva/blob/de3eb832/archiva-modules/archiva-web/archiva-web-common/src/test/java/org/apache/archiva/security/UserRepositoriesStub.java
----------------------------------------------------------------------
diff --git a/archiva-modules/archiva-web/archiva-web-common/src/test/java/org/apache/archiva/security/UserRepositoriesStub.java b/archiva-modules/archiva-web/archiva-web-common/src/test/java/org/apache/archiva/security/UserRepositoriesStub.java
index 485d4a7..3cd2dad 100644
--- a/archiva-modules/archiva-web/archiva-web-common/src/test/java/org/apache/archiva/security/UserRepositoriesStub.java
+++ b/archiva-modules/archiva-web/archiva-web-common/src/test/java/org/apache/archiva/security/UserRepositoriesStub.java
@@ -88,4 +88,9 @@ public class UserRepositoriesStub
{
return Collections.emptyList();
}
+
+ @Override
+ public List<ManagedRepository> getManagableRepositories(String principal) throws ArchivaSecurityException, AccessDeniedException, PrincipalNotFoundException {
+ return Collections.emptyList();
+ }
}
http://git-wip-us.apache.org/repos/asf/archiva/blob/de3eb832/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/archiva/artifacts-management.js
----------------------------------------------------------------------
diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/archiva/artifacts-management.js b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/archiva/artifacts-management.js
index e87ec56..aa96a83 100644
--- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/archiva/artifacts-management.js
+++ b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/archiva/artifacts-management.js
@@ -86,7 +86,7 @@ define("archiva.artifacts-management",["jquery","i18n","utils","jquery.tmpl","kn
dataType: 'json',
success: function(data) {
mainContent.html($("#file-upload-screen").html());
- $.ajax("restServices/archivaServices/browseService/userRepositories", {
+ $.ajax("restServices/archivaServices/browseService/userManagableRepositories", {
type: "GET",
dataType: 'json',
success: function(data) {