Adding template method for REST v2

This commit is contained in:
Martin Stockhammer 2020-12-01 17:46:37 +01:00
parent be46e6dc77
commit cba11d9b56
4 changed files with 226 additions and 102 deletions

View File

@ -0,0 +1,118 @@
package org.apache.archiva.redback.rest.api.model.v2;
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
import io.swagger.v3.oas.annotations.media.Schema;
import org.apache.archiva.redback.role.model.ModelApplication;
import org.apache.archiva.redback.role.model.ModelTemplate;
import java.io.Serializable;
/**
* @author Martin Stockhammer <martin_s@apache.org>
*/
@Schema(name="roleTemplate",description = "Information about role templates")
public class RoleTemplate implements Serializable
{
private static final long serialVersionUID = 8639174144508127048L;
private String id;
private String name;
private String description;
private String applicationId;
private boolean assignable;
private boolean permanent;
public static RoleTemplate of( ModelApplication application, ModelTemplate template ) {
RoleTemplate tmpl = new RoleTemplate( );
tmpl.setApplicationId( application.getId( ) );
tmpl.setId( template.getId( ) );
tmpl.setName( template.getNamePrefix() );
tmpl.setAssignable( template.isAssignable( ) );
tmpl.setPermanent( template.isPermanent() );
tmpl.setDescription( template.getDescription( ) );
return tmpl;
}
@Schema(description = "The template identifier")
public String getId( )
{
return id;
}
public void setId( String id )
{
this.id = id;
}
@Schema(description = "The name of the template")
public String getName( )
{
return name;
}
public void setName( String name )
{
this.name = name;
}
@Schema(description = "The template description")
public String getDescription( )
{
return description;
}
public void setDescription( String description )
{
this.description = description;
}
@Schema(description = "Identifier of the application this template is part of")
public String getApplicationId( )
{
return applicationId;
}
public void setApplicationId( String applicationId )
{
this.applicationId = applicationId;
}
@Schema(description = "If a template instance can be assigned")
public boolean isAssignable( )
{
return assignable;
}
public void setAssignable( boolean assignable )
{
this.assignable = assignable;
}
@Schema(description = "If the template is permanent and cannot be deleted")
public boolean isPermanent( )
{
return permanent;
}
public void setPermanent( boolean permanent )
{
this.permanent = permanent;
}
}

View File

@ -32,6 +32,7 @@
import org.apache.archiva.redback.rest.api.model.v2.PagedResult;
import org.apache.archiva.redback.rest.api.model.v2.Role;
import org.apache.archiva.redback.rest.api.model.v2.RoleInfo;
import org.apache.archiva.redback.rest.api.model.v2.RoleTemplate;
import org.apache.archiva.redback.rest.api.services.RedbackServiceException;
import javax.ws.rs.DELETE;
@ -152,7 +153,7 @@ Response checkRole( @PathParam( "roleId" ) String roleId )
* @param oldResource the resource of the current role
* @param newResource the resource of the new role
*/
@Path( "template/{templateId}/{oldResource}/moveto/{newResource}" )
@Path( "templates/{templateId}/{oldResource}/moveto/{newResource}" )
@POST
@Produces( {APPLICATION_JSON} )
@RedbackAuthorization( permissions = RedbackRoleConstants.USER_MANAGEMENT_RBAC_ADMIN_OPERATION )
@ -182,7 +183,7 @@ RoleInfo moveTemplatedRole( @PathParam( "templateId" ) String templateId, @PathP
@PathParam( "newResource" ) String newResource )
throws RedbackServiceException;
@Path( "template/{templateId}/{resource}" )
@Path( "templates/{templateId}/{resource}" )
@HEAD
@Produces( { APPLICATION_JSON} )
@RedbackAuthorization( permissions = RedbackRoleConstants.USER_MANAGEMENT_RBAC_ADMIN_OPERATION )
@ -207,7 +208,7 @@ Response checkTemplateRole( @PathParam( "templateId" ) String templateId,
@PathParam( "resource" ) String resource )
throws RedbackServiceException;
@Path( "template/{templateId}/{resource}" )
@Path( "templates/{templateId}/{resource}" )
@PUT
@Produces( { APPLICATION_JSON } )
@RedbackAuthorization( permissions = RedbackRoleConstants.USER_MANAGEMENT_RBAC_ADMIN_OPERATION )
@ -249,7 +250,7 @@ RoleInfo createTemplatedRole( @PathParam( "templateId" ) String templateId,
* @param templateId
* @param resource
*/
@Path( "template/{templateId}/{resource}" )
@Path( "templates/{templateId}/{resource}" )
@DELETE
@Produces( { APPLICATION_JSON } )
@RedbackAuthorization( permissions = RedbackRoleConstants.USER_MANAGEMENT_RBAC_ADMIN_OPERATION )
@ -308,7 +309,7 @@ RoleInfo assignRole( @PathParam( "roleId" ) String roleId, @PathParam( "userId"
* @param resource
* @param userId
*/
@Path( "template/{templateId}/{resource}/user/{userId}" )
@Path( "templates/{templateId}/{resource}/user/{userId}" )
@PUT
@Produces( { APPLICATION_JSON } )
@RedbackAuthorization( permissions = RedbackRoleConstants.USER_MANAGEMENT_RBAC_ADMIN_OPERATION )
@ -388,5 +389,22 @@ RoleInfo unassignRole( @PathParam( "roleId" ) String roleId, @PathParam( "userId
RoleInfo updateRole( @PathParam("roleId") String roleId, Role role )
throws RedbackServiceException;
@Path( "templates" )
@GET
@Produces( { APPLICATION_JSON } )
@RedbackAuthorization( permissions = RedbackRoleConstants.USER_MANAGEMENT_RBAC_ADMIN_OPERATION )
@Operation( summary = "Returns all role templates",
security = {
@SecurityRequirement( name = RedbackRoleConstants.USER_MANAGEMENT_RBAC_ADMIN_OPERATION )
},
responses = {
@ApiResponse( responseCode = "200",
description = "If the list could be retrieved"
),
@ApiResponse( responseCode = "403", description = "The authenticated user has not the permission for role assignment.",
content = @Content(mediaType = APPLICATION_JSON, schema = @Schema(implementation = RedbackRestError.class )) )
}
)
List<RoleTemplate> getTemplates( ) throws RedbackServiceException;
}

View File

@ -26,6 +26,7 @@
import org.apache.archiva.redback.rest.api.model.v2.PagedResult;
import org.apache.archiva.redback.rest.api.model.v2.Role;
import org.apache.archiva.redback.rest.api.model.v2.RoleInfo;
import org.apache.archiva.redback.rest.api.model.v2.RoleTemplate;
import org.apache.archiva.redback.rest.api.services.RedbackServiceException;
import org.apache.archiva.redback.rest.api.services.v2.RoleService;
import org.apache.archiva.redback.role.PermanentRoleDeletionInvalid;
@ -33,6 +34,8 @@
import org.apache.archiva.redback.role.RoleManager;
import org.apache.archiva.redback.role.RoleManagerException;
import org.apache.archiva.redback.role.RoleNotFoundException;
import org.apache.archiva.redback.role.model.ModelApplication;
import org.apache.archiva.redback.role.model.ModelTemplate;
import org.apache.archiva.redback.role.util.RoleModelUtils;
import org.apache.archiva.redback.users.UserManager;
import org.apache.archiva.redback.users.UserManagerException;
@ -472,41 +475,13 @@ public RoleInfo updateRole( String roleId, Role role ) throws RedbackServiceExce
}
// public List<Role> getEffectivelyAssignedRoles( String username )
// throws RedbackServiceException
// {
// if ( StringUtils.isEmpty( username ) )
// {
// throw new RedbackServiceException( new ErrorMessage( "user.cannot.be.null" ) );
// }
// try
// {
// List<? extends org.apache.archiva.redback.rbac.Role> roles =
// filterAssignableRoles( rbacManager.getEffectivelyAssignedRoles( username ) );
//
// List<Role> effectivelyAssignedRoles = new ArrayList<Role>( roles.size() );
//
// for ( org.apache.archiva.redback.rbac.Role r : roles )
// {
// effectivelyAssignedRoles.add( new Role( r ) );
// }
//
// Collections.sort( effectivelyAssignedRoles, RoleComparator.INSTANCE );
//
// return effectivelyAssignedRoles;
// }
// catch ( RbacManagerException rme )
// {
// // ignore, this can happen when the user has no roles assigned
// }
// return new ArrayList<Role>( 0 );
// }
//----------------------------------------------------------------
// Internal methods
//----------------------------------------------------------------
@Override
public List<RoleTemplate> getTemplates( ) throws RedbackServiceException
{
return roleManager.getModel( ).getApplications( ).stream( ).flatMap( app ->
app.getTemplates( ).stream( ).map( modelTempl -> RoleTemplate.of( app, modelTempl ) )
).collect( Collectors.toList( ) );
}
}

View File

@ -20,6 +20,7 @@
import io.restassured.response.Response;
import org.apache.archiva.redback.rest.api.model.v2.RoleInfo;
import org.apache.archiva.redback.rest.api.model.v2.RoleTemplate;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.DisplayName;
@ -38,6 +39,7 @@
import java.util.List;
import java.util.Map;
import static io.restassured.RestAssured.get;
import static io.restassured.RestAssured.given;
import static io.restassured.http.ContentType.JSON;
import static org.apache.archiva.redback.rest.api.Constants.DEFAULT_PAGE_LIMIT;
@ -92,7 +94,7 @@ void createTemplatedRole( )
{
Response response = given( ).spec( getRequestSpec( token ) ).contentType( JSON )
.when( )
.put( "template/archiva-repository-manager/repository01" )
.put( "templates/archiva-repository-manager/repository01" )
.then( ).statusCode( 201 ).extract( ).response( );
assertNotNull( response );
RoleInfo roleInfo = response.getBody( ).jsonPath( ).getObject( "", RoleInfo.class );
@ -100,16 +102,16 @@ void createTemplatedRole( )
assertTrue( response.getHeader( "Location" ).endsWith( "/roles/" + roleInfo.getId( ) ) );
given( ).spec( getRequestSpec( token ) ).contentType( JSON )
.when( )
.put( "template/archiva-repository-manager/repository01" )
.put( "templates/archiva-repository-manager/repository01" )
.then( ).statusCode( 200 );
given( ).spec( getRequestSpec( token ) ).contentType( JSON )
.when( )
.head( "template/archiva-repository-manager/repository01" )
.head( "templates/archiva-repository-manager/repository01" )
.then( ).statusCode( 200 );
// Repository observer is child template of repository-manager and will be created too
given( ).spec( getRequestSpec( token ) ).contentType( JSON )
.when( )
.head( "template/archiva-repository-observer/repository01" )
.head( "templates/archiva-repository-observer/repository01" )
.then( ).statusCode( 200 );
}
@ -117,11 +119,11 @@ void createTemplatedRole( )
{
given( ).spec( getRequestSpec( token ) ).contentType( JSON )
.when( )
.delete( "template/archiva-repository-manager/repository01" )
.delete( "templates/archiva-repository-manager/repository01" )
.then( ).statusCode( 200 );
given( ).spec( getRequestSpec( token ) ).contentType( JSON )
.when( )
.delete( "template/archiva-repository-observer/repository01" )
.delete( "templates/archiva-repository-observer/repository01" )
.then( ).statusCode( 200 );
}
}
@ -132,7 +134,7 @@ void createTemplatedRoleWithNonexistentTemplate( )
String token = getAdminToken( );
given( ).spec( getRequestSpec( token ) ).contentType( JSON )
.when( )
.put( "template/abcdefg/repository01" )
.put( "templates/abcdefg/repository01" )
.then( ).statusCode( 404 );
}
@ -142,23 +144,23 @@ void deleteTemplatedRole( )
String token = getAdminToken( );
given( ).spec( getRequestSpec( token ) ).contentType( JSON )
.when( )
.put( "template/archiva-repository-manager/repository05" )
.put( "templates/archiva-repository-manager/repository05" )
.then( ).statusCode( 201 ).extract( ).response( );
given( ).spec( getRequestSpec( token ) ).contentType( JSON )
.when( )
.delete( "template/archiva-repository-manager/repository01" )
.delete( "templates/archiva-repository-manager/repository01" )
.then( ).statusCode( 404 );
given( ).spec( getRequestSpec( token ) ).contentType( JSON )
.when( )
.delete( "template/archiva-repository-manager/repository05" )
.delete( "templates/archiva-repository-manager/repository05" )
.then( ).statusCode( 200 );
given( ).spec( getRequestSpec( token ) ).contentType( JSON )
.when( )
.delete( "template/archiva-repository-manager/repository05" )
.delete( "templates/archiva-repository-manager/repository05" )
.then( ).statusCode( 404 );
given( ).spec( getRequestSpec( token ) ).contentType( JSON )
.when( )
.delete( "template/archiva-repository-observer/repository05" )
.delete( "templates/archiva-repository-observer/repository05" )
.then( ).statusCode( 200 );
}
@ -170,13 +172,13 @@ void checkTemplatedRole( )
String token = getAdminToken( );
given( ).spec( getRequestSpec( token ) ).contentType( JSON )
.when( )
.put( "template/archiva-repository-observer/repository06" )
.put( "templates/archiva-repository-observer/repository06" )
.then( ).statusCode( 201 );
try
{
given( ).spec( getRequestSpec( token ) ).contentType( JSON )
.when( )
.head( "template/archiva-repository-observer/repository06" )
.head( "templates/archiva-repository-observer/repository06" )
.then( ).statusCode( 200 );
given( ).spec( getRequestSpec( token ) ).contentType( JSON )
@ -188,7 +190,7 @@ void checkTemplatedRole( )
{
given( ).spec( getRequestSpec( token ) ).contentType( JSON )
.when( )
.delete( "template/archiva-repository-observer/repository06" )
.delete( "templates/archiva-repository-observer/repository06" )
.then( ).statusCode( 200 );
}
@ -214,11 +216,11 @@ void initRoles( )
String suffix = String.format( "%03d", i );
given( ).spec( getRequestSpec( token ) ).contentType( JSON )
.when( )
.put( "template/archiva-repository-manager/repo" + suffix )
.put( "templates/archiva-repository-manager/repo" + suffix )
.then( ).statusCode( 201 ).extract( ).response( );
given( ).spec( getRequestSpec( token ) ).contentType( JSON )
.when( )
.put( "template/archiva-repository-observer/repo" + suffix )
.put( "templates/archiva-repository-observer/repo" + suffix )
.then( ).statusCode( anyOf( equalTo( 200 ), equalTo( 201 ) ) ).extract( ).response( );
}
}
@ -328,9 +330,9 @@ void cleanupRoles( )
{
String suffix = String.format( "%03d", i );
given( ).spec( getRequestSpec( token ) ).contentType( JSON )
.when( ).delete( "template/archiva-repository-manager/repo" + suffix ).then( ).statusCode( 200 );
.when( ).delete( "templates/archiva-repository-manager/repo" + suffix ).then( ).statusCode( 200 );
given( ).spec( getRequestSpec( token ) ).contentType( JSON )
.when( ).delete( "template/archiva-repository-observer/repo" + suffix ).then( ).statusCode( 200 );
.when( ).delete( "templates/archiva-repository-observer/repo" + suffix ).then( ).statusCode( 200 );
}
}
@ -377,39 +379,39 @@ void moveRole( )
{
given( ).spec( getRequestSpec( token ) ).contentType( JSON )
.when( )
.put( "template/archiva-repository-manager/repository07" )
.put( "templates/archiva-repository-manager/repository07" )
.then( ).statusCode( 201 );
given( ).spec( getRequestSpec( token ) ).contentType( JSON )
.when( ).head( "template/archiva-repository-observer/repository07" ).then( ).statusCode( 200 );
.when( ).head( "templates/archiva-repository-observer/repository07" ).then( ).statusCode( 200 );
Response response = given( ).spec( getRequestSpec( token ) ).contentType( JSON )
.when( ).post( "template/archiva-repository-manager/repository07/moveto/repository08" ).then( ).statusCode( 201 ).extract( ).response( );
.when( ).post( "templates/archiva-repository-manager/repository07/moveto/repository08" ).then( ).statusCode( 201 ).extract( ).response( );
RoleInfo role = response.getBody( ).jsonPath( ).getObject( "", RoleInfo.class );
assertNotNull( role );
assertEquals( "archiva-repository-manager.repository08", role.getId( ) );
assertEquals( "repository08", role.getResource( ) );
given( ).spec( getRequestSpec( token ) ).contentType( JSON )
.when( ).head( "template/archiva-repository-manager/repository07" ).then( ).statusCode( 404 );
.when( ).head( "templates/archiva-repository-manager/repository07" ).then( ).statusCode( 404 );
// Child templates are copied and not moved
given( ).spec( getRequestSpec( token ) ).contentType( JSON )
.when( ).head( "template/archiva-repository-observer/repository07" ).then( ).statusCode( 200 );
.when( ).head( "templates/archiva-repository-observer/repository07" ).then( ).statusCode( 200 );
given( ).spec( getRequestSpec( token ) ).contentType( JSON )
.when( ).head( "template/archiva-repository-observer/repository08" ).then( ).statusCode( 200 );
.when( ).head( "templates/archiva-repository-observer/repository08" ).then( ).statusCode( 200 );
}
finally
{
given( ).spec( getRequestSpec( token ) ).contentType( JSON )
.when( )
.delete( "template/archiva-repository-manager/repository08" )
.delete( "templates/archiva-repository-manager/repository08" )
.then( ).statusCode( 200 );
given( ).spec( getRequestSpec( token ) ).contentType( JSON )
.when( )
.delete( "template/archiva-repository-observer/repository07" )
.delete( "templates/archiva-repository-observer/repository07" )
.then( ).statusCode( 200 );
given( ).spec( getRequestSpec( token ) ).contentType( JSON )
.when( )
.delete( "template/archiva-repository-observer/repository08" )
.delete( "templates/archiva-repository-observer/repository08" )
.then( ).statusCode( 200 );
}
@ -424,37 +426,37 @@ void moveRoleToExistingDestination( )
{
given( ).spec( getRequestSpec( token ) ).contentType( JSON )
.when( )
.put( "template/archiva-repository-manager/repository09" )
.put( "templates/archiva-repository-manager/repository09" )
.then( ).statusCode( 201 );
given( ).spec( getRequestSpec( token ) ).contentType( JSON )
.when( )
.put( "template/archiva-repository-manager/repository10" )
.put( "templates/archiva-repository-manager/repository10" )
.then( ).statusCode( 201 );
Response response = given( ).spec( getRequestSpec( token ) ).contentType( JSON )
.when( ).redirects( ).follow( false )
.post( "template/archiva-repository-manager/repository09/moveto/repository10" ).then( ).statusCode( 303 )
.post( "templates/archiva-repository-manager/repository09/moveto/repository10" ).then( ).statusCode( 303 )
.extract( ).response( );
assertTrue( response.getHeader( "Location" ).endsWith( "/roles/template/archiva-repository-manager/repository10" ) );
assertTrue( response.getHeader( "Location" ).endsWith( "/roles/templates/archiva-repository-manager/repository10" ) );
given( ).spec( getRequestSpec( token ) ).contentType( JSON )
.when( ).head( "template/archiva-repository-manager/repository09" ).then( ).statusCode( 200 );
.when( ).head( "templates/archiva-repository-manager/repository09" ).then( ).statusCode( 200 );
}
finally
{
given( ).spec( getRequestSpec( token ) ).contentType( JSON )
.when( )
.delete( "template/archiva-repository-manager/repository09" )
.delete( "templates/archiva-repository-manager/repository09" )
.then( ).statusCode( 200 );
given( ).spec( getRequestSpec( token ) ).contentType( JSON )
.when( )
.delete( "template/archiva-repository-observer/repository09" )
.delete( "templates/archiva-repository-observer/repository09" )
.then( ).statusCode( 200 );
given( ).spec( getRequestSpec( token ) ).contentType( JSON )
.when( )
.delete( "template/archiva-repository-manager/repository10" )
.delete( "templates/archiva-repository-manager/repository10" )
.then( ).statusCode( 200 );
given( ).spec( getRequestSpec( token ) ).contentType( JSON )
.when( )
.delete( "template/archiva-repository-observer/repository10" )
.delete( "templates/archiva-repository-observer/repository10" )
.then( ).statusCode( 200 );
}
@ -489,7 +491,6 @@ void assignRole( )
given( ).spec( getRequestSpec( token ) ).contentType( JSON )
.when( )
.put( "system-administrator/user/aragorn" )
.prettyPeek( )
.then( ).statusCode( 200 );
response = given( ).spec( getRequestSpec( token, getUserServicePath( ) ) ).contentType( JSON )
.when( )
@ -533,7 +534,6 @@ void assignNonexistentRole( )
given( ).spec( getRequestSpec( token ) ).contentType( JSON )
.when( )
.put( "abcdefg/user/aragorn" )
.prettyPeek( )
.then( ).statusCode( 404 );
response = given( ).spec( getRequestSpec( token, getUserServicePath( ) ) ).contentType( JSON )
.when( )
@ -557,7 +557,6 @@ void assignRoleToNonexistentUser( )
given( ).spec( getRequestSpec( token ) ).contentType( JSON )
.when( )
.put( "system-administrator/user/aragorn" )
.prettyPeek( )
.then( ).statusCode( 404 );
}
@ -576,7 +575,7 @@ void assignTemplatedRole( )
{
given( ).spec( getRequestSpec( token ) ).contentType( JSON )
.when( )
.put( "template/archiva-repository-manager/repository11" )
.put( "templates/archiva-repository-manager/repository11" )
.then( ).statusCode( 201 );
given( ).spec( getRequestSpec( token, getUserServicePath( ) ) ).contentType( JSON )
@ -593,8 +592,7 @@ void assignTemplatedRole( )
assertFalse( roles.stream( ).filter( role -> "archiva-repository-manager.repository11".equals( role.getId( ) ) ).findAny( ).isPresent( ) );
given( ).spec( getRequestSpec( token ) ).contentType( JSON )
.when( )
.put( "template/archiva-repository-manager/repository11/user/aragorn" )
.prettyPeek( )
.put( "templates/archiva-repository-manager/repository11/user/aragorn" )
.then( ).statusCode( 200 );
response = given( ).spec( getRequestSpec( token, getUserServicePath( ) ) ).contentType( JSON )
.when( )
@ -610,10 +608,10 @@ void assignTemplatedRole( )
.delete( "aragorn" ).then().statusCode( 200 );
given( ).spec( getRequestSpec( token ) ).contentType( JSON )
.when( )
.delete( "template/archiva-repository-manager/repository11" ).then().statusCode( 200 );
.delete( "templates/archiva-repository-manager/repository11" ).then().statusCode( 200 );
given( ).spec( getRequestSpec( token ) ).contentType( JSON )
.when( )
.delete( "template/archiva-repository-observer/repository11" ).then().statusCode( 200 );
.delete( "templates/archiva-repository-observer/repository11" ).then().statusCode( 200 );
}
}
@ -679,7 +677,7 @@ void unAssignTemplatedRole( )
{
given( ).spec( getRequestSpec( token ) ).contentType( JSON )
.when( )
.put( "template/archiva-repository-manager/repository12" )
.put( "templates/archiva-repository-manager/repository12" )
.then( ).statusCode( 201 );
given( ).spec( getRequestSpec( token, getUserServicePath( ) ) ).contentType( JSON )
.body( jsonAsMap )
@ -688,7 +686,7 @@ void unAssignTemplatedRole( )
.then( ).statusCode( 201 );
given( ).spec( getRequestSpec( token ) ).contentType( JSON )
.when( )
.put( "template/archiva-repository-manager/repository12/user/aragorn" )
.put( "templates/archiva-repository-manager/repository12/user/aragorn" )
.then( ).statusCode( 200 );
Response response = given( ).spec( getRequestSpec( token, getUserServicePath( ) ) ).contentType( JSON )
.when( )
@ -714,10 +712,10 @@ void unAssignTemplatedRole( )
.delete( "aragorn" ).then().statusCode( 200 );
given( ).spec( getRequestSpec( token ) ).contentType( JSON )
.when( )
.delete( "template/archiva-repository-manager/repository12" ).then().statusCode( 200 );
.delete( "templates/archiva-repository-manager/repository12" ).then().statusCode( 200 );
given( ).spec( getRequestSpec( token ) ).contentType( JSON )
.when( )
.delete( "template/archiva-repository-observer/repository12" ).then().statusCode( 200 );
.delete( "templates/archiva-repository-observer/repository12" ).then().statusCode( 200 );
}
}
@ -730,7 +728,7 @@ void updateRole( )
{
Response response = given( ).spec( getRequestSpec( token ) ).contentType( JSON )
.when( )
.put( "template/archiva-repository-manager/repository13" )
.put( "templates/archiva-repository-manager/repository13" )
.then( ).statusCode( 201 ).extract( ).response( );
assertNotNull( response );
RoleInfo roleInfo = response.getBody( ).jsonPath( ).getObject( "", RoleInfo.class );
@ -756,11 +754,11 @@ void updateRole( )
{
given( ).spec( getRequestSpec( token ) ).contentType( JSON )
.when( )
.delete( "template/archiva-repository-manager/repository13" )
.delete( "templates/archiva-repository-manager/repository13" )
.then( ).statusCode( 200 );
given( ).spec( getRequestSpec( token ) ).contentType( JSON )
.when( )
.delete( "template/archiva-repository-observer/repository13" )
.delete( "templates/archiva-repository-observer/repository13" )
.then( ).statusCode( 200 );
}
}
@ -786,7 +784,7 @@ void updateRoleWithAssignedUsers( )
Response response = given( ).spec( getRequestSpec( token ) ).contentType( JSON )
.when( )
.put( "template/archiva-repository-manager/repository14" )
.put( "templates/archiva-repository-manager/repository14" )
.then( ).statusCode( 201 ).extract( ).response( );
assertNotNull( response );
RoleInfo roleInfo = response.getBody( ).jsonPath( ).getObject( "", RoleInfo.class );
@ -835,11 +833,11 @@ void updateRoleWithAssignedUsers( )
given( ).spec( getRequestSpec( token ) ).contentType( JSON )
.when( )
.delete( "template/archiva-repository-manager/repository14" )
.delete( "templates/archiva-repository-manager/repository14" )
.then( ).statusCode( 200 );
given( ).spec( getRequestSpec( token ) ).contentType( JSON )
.when( )
.delete( "template/archiva-repository-observer/repository14" )
.delete( "templates/archiva-repository-observer/repository14" )
.then( ).statusCode( 200 );
}
}
@ -853,7 +851,7 @@ void updateRoleWithBadId( )
{
Response response = given( ).spec( getRequestSpec( token ) ).contentType( JSON )
.when( )
.put( "template/archiva-repository-manager/repository15" )
.put( "templates/archiva-repository-manager/repository15" )
.then( ).statusCode( 201 ).extract( ).response( );
assertNotNull( response );
RoleInfo roleInfo = response.getBody( ).jsonPath( ).getObject( "", RoleInfo.class );
@ -871,11 +869,11 @@ void updateRoleWithBadId( )
{
given( ).spec( getRequestSpec( token ) ).contentType( JSON )
.when( )
.delete( "template/archiva-repository-manager/repository15" )
.delete( "templates/archiva-repository-manager/repository15" )
.then( ).statusCode( 200 );
given( ).spec( getRequestSpec( token ) ).contentType( JSON )
.when( )
.delete( "template/archiva-repository-observer/repository15" )
.delete( "templates/archiva-repository-observer/repository15" )
.then( ).statusCode( 200 );
}
}
@ -889,7 +887,7 @@ void deleteTemplatedRolePermanentThrowsError( )
{
Response response = given( ).spec( getRequestSpec( token ) ).contentType( JSON )
.when( )
.put( "template/archiva-repository-manager/repository16" )
.put( "templates/archiva-repository-manager/repository16" )
.then( ).statusCode( 201 ).extract( ).response( );
assertNotNull( response );
RoleInfo roleInfo = response.getBody( ).jsonPath( ).getObject( "", RoleInfo.class );
@ -908,7 +906,7 @@ void deleteTemplatedRolePermanentThrowsError( )
given( ).spec( getRequestSpec( token ) ).contentType( JSON )
.when( )
.delete( "template/archiva-repository-manager/repository16" )
.delete( "templates/archiva-repository-manager/repository16" )
.then( ).statusCode( 400 );
}
@ -924,11 +922,11 @@ void deleteTemplatedRolePermanentThrowsError( )
.then( ).statusCode( 200 ).extract( ).response( );
given( ).spec( getRequestSpec( token ) ).contentType( JSON )
.when( )
.delete( "template/archiva-repository-manager/repository16" )
.delete( "templates/archiva-repository-manager/repository16" )
.then( ).statusCode( 200 );
given( ).spec( getRequestSpec( token ) ).contentType( JSON )
.when( )
.delete( "template/archiva-repository-observer/repository16" )
.delete( "templates/archiva-repository-observer/repository16" )
.then( ).statusCode( 200 );
}
@ -950,4 +948,19 @@ void updateRoleNotExist( )
.then( ).statusCode( 404 );
}
@Test
void getTemplates() {
String token = getAdminToken( );
Response response = given( ).spec( getRequestSpec( token ) ).contentType( JSON )
.when( )
.get( "templates" )
.then( ).statusCode( 200 ).extract( ).response( );
assertNotNull( response );
List<RoleTemplate> templates = response.getBody( ).jsonPath( ).getList( "", RoleTemplate.class );
assertEquals( 2, templates.size( ) );
assertTrue( templates.stream( ).filter( tmpl -> "archiva-repository-manager".equals( tmpl.getId( ) ) ).findAny().isPresent() );
assertTrue( templates.stream( ).filter( tmpl -> "archiva-repository-observer".equals( tmpl.getId( ) ) ).findAny().isPresent() );
}
}