[MRM-1762] Upload Artifact page allows to uploading SNAPSHOT versions to non snapshot repositories

git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@1542152 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Olivier Lamy 2013-11-15 01:38:18 +00:00
parent 76b43a9254
commit 86c913a95e
3 changed files with 29 additions and 2 deletions

View File

@ -91,4 +91,5 @@ public class ArchivaRestServiceException
{
this.fieldName = fieldName;
}
}

View File

@ -128,7 +128,7 @@ public class DefaultFileUploadService
// skygo: http header form pomFile was once sending 1 for true and void for false
// leading to permanent false value for pomFile if using toBoolean(); use , "1", ""
boolean pomFile = BooleanUtils.toBoolean( getStringValue( multipartBody, "pomFile" ) );
Attachment file = multipartBody.getAttachment( "files[]" );
//Content-Disposition: form-data; name="files[]"; filename="org.apache.karaf.features.command-2.2.2.jar"
@ -219,6 +219,32 @@ public class DefaultFileUploadService
{
return Boolean.FALSE;
}
try
{
ManagedRepository managedRepository = managedRepositoryAdmin.getManagedRepository( repositoryId );
if ( managedRepository == null )
{
// TODO i18n ?
throw new ArchivaRestServiceException( "Cannot find managed repository with id " + repositoryId,
Response.Status.BAD_REQUEST.getStatusCode(), null );
}
if ( VersionUtil.isSnapshot( version ) && !managedRepository.isSnapshots() )
{
// TODO i18n ?
throw new ArchivaRestServiceException(
"Managed repository with id " + repositoryId + " do not accept snapshots",
Response.Status.BAD_REQUEST.getStatusCode(), null );
}
}
catch ( RepositoryAdminException e )
{
throw new ArchivaRestServiceException( e.getMessage(),
Response.Status.INTERNAL_SERVER_ERROR.getStatusCode(), e );
}
// get from the session file with groupId/artifactId
Iterable<FileMetadata> filesToAdd = Iterables.filter( fileMetadatas, new Predicate<FileMetadata>()

View File

@ -82,7 +82,7 @@ define("archiva.artifacts-management",["jquery","i18n","utils","jquery.tmpl","kn
type: "GET",
dataType: 'json',
success: function(data) {
mainContent.html($("#file-upload-screen" ).html());
mainContent.html($("#file-upload-screen").html());
$.ajax("restServices/archivaServices/browseService/userRepositories", {
type: "GET",
dataType: 'json',