Commit 3c724094 authored by Kostis Trantzas's avatar Kostis Trantzas
Browse files

Merge branch '79-new-role-checking-for-elevated-rights-user' into 'develop'

Resolve "New role checking for elevated-rights user"

See merge request !87
parents 5b04017a b5f5068a
Loading
Loading
Loading
Loading
Loading
+7 −9
Original line number Diff line number Diff line
@@ -99,6 +99,7 @@ public class ServiceOrderApiController implements ServiceOrderApi {
			
				log.info("authentication=  " + principal.toString());
				String extInfo = null;
				Boolean autoAcknowledge = false;
				try {
					

@@ -118,27 +119,24 @@ public class ServiceOrderApiController implements ServiceOrderApi {
								extInfo,
								serviceOrder.getRelatedParty()));
					} 
					else if ( principal instanceof UsernamePasswordAuthenticationToken ) {
					else if ( principal instanceof UsernamePasswordAuthenticationToken token) {
						serviceOrder.setRelatedParty(AddUserAsOwnerToRelatedParties.addUser(
								principal.getName(), 
						      token.getName(), 
								//user.getId()+"", 
								null, 
								UserPartRoleType.REQUESTER,
								extInfo,
								serviceOrder.getRelatedParty()));
					}
						
					
				}finally {
						autoAcknowledge = token.getAuthorities().stream().anyMatch( s -> s.getAuthority().equals("ROLE_OSL_AUTOACK_ORDER"));
						
					}
				
					
				}finally {
					
				
				
				
				ServiceOrder c = serviceOrderRepoService.addServiceOrder(serviceOrder);
				}
				ServiceOrder c = serviceOrderRepoService.addServiceOrder(serviceOrder, autoAcknowledge);

				return new ResponseEntity<ServiceOrder>(c, HttpStatus.OK);				
			
+1 −1
Original line number Diff line number Diff line
@@ -123,7 +123,7 @@ public class ServiceOrderApiRouteBuilder extends RouteBuilder {
				.log(LoggingLevel.INFO, log, CATALOG_ADD_SERVICEORDER + " message received!")
				.to("log:DEBUG?showBody=true&showHeaders=true").unmarshal()
				.json(JsonLibrary.Jackson, ServiceOrderCreate.class, true)
				.bean(serviceOrderRepoService, "addServiceOrderReturnEager(${body})")
				.bean(serviceOrderRepoService, "addServiceOrderReturnEager(${body}, false)")
				.convertBodyTo(String.class); //creates back a response
		

+6 −7
Original line number Diff line number Diff line
@@ -307,7 +307,7 @@ public class ServiceOrderRepoService {
	}

    @Transactional
	public ServiceOrder addServiceOrder(@Valid ServiceOrderCreate serviceOrderCreate) throws NotFoundException {
	public ServiceOrder addServiceOrder(@Valid ServiceOrderCreate serviceOrderCreate, Boolean autoAcknowledge) throws NotFoundException {
		// Ensure that all Services Specifications exist
		List <ServiceOrderItem> serviceOrderItemList = serviceOrderCreate.getOrderItem();
		for (ServiceOrderItem serviceOrderItem: serviceOrderItemList) {
@@ -391,9 +391,8 @@ public class ServiceOrderRepoService {
		noteItem.setDate(OffsetDateTime.now(ZoneOffset.UTC) );
		so.addNoteItem(noteItem);

		so = this.serviceOrderRepo.saveAndFlush(so);
		
		if (allAcknowledged) { //in the case were order items are automatically acknowledged
		if (allAcknowledged || autoAcknowledge ) { //in the case were order items are automatically acknowledged
			so.setState( ServiceOrderStateType.ACKNOWLEDGED );
			so.setStartDate(  OffsetDateTime.now(ZoneOffset.UTC) );
			noteItem = new Note();
@@ -402,9 +401,9 @@ public class ServiceOrderRepoService {
			noteItem.setDate(OffsetDateTime.now(ZoneOffset.UTC) );
			so.addNoteItem(noteItem);
			
			so = this.serviceOrderRepo.saveAndFlush(so);
		}

        so = this.serviceOrderRepo.saveAndFlush(so);
		raiseSOCreateNotification(so);

		return so;
@@ -858,9 +857,9 @@ public class ServiceOrderRepoService {
		return null;
	}
	
	public String addServiceOrderReturnEager(@Valid ServiceOrderCreate serviceOrderCreate) {
	public String addServiceOrderReturnEager(@Valid ServiceOrderCreate serviceOrderCreate, Boolean autoCreate) {
		try {
			ServiceOrder so = this.addServiceOrder(serviceOrderCreate);
			ServiceOrder so = this.addServiceOrder(serviceOrderCreate, autoCreate);
			return this.getServiceOrderEagerAsString( so.getUuid());
		} catch (JsonProcessingException e) {
			// TODO Auto-generated catch block
+15 −2
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ import java.util.Set;
import org.apache.commons.io.IOUtils;
import org.etsi.osl.services.api.BaseIT;
import org.etsi.osl.tmf.JsonUtils;
import org.etsi.osl.tmf.common.model.service.Place;
import org.etsi.osl.tmf.common.model.service.ServiceSpecificationRef;
import org.etsi.osl.tmf.pm632.model.ContactMedium;
import org.etsi.osl.tmf.pm632.model.Individual;
@@ -330,6 +331,15 @@ public class ServiceOrderApiControllerTest extends BaseIT {

        serviceRestriction.setServiceSpecification(aServiceSpecificationRef);
        serviceRestriction.setName("aServiceRestriction");
        
        Place pi = new Place();
        pi.setName("palcename");
        pi.setRole("local");
        serviceRestriction.addPlaceItem( pi  );
        Place pi2 = new Place();
        pi2.setName("palcename2");
        pi2.setRole("local");
        serviceRestriction.addPlaceItem( pi2  );
        soi.setService(serviceRestriction);
         
        String response = mvc
@@ -343,6 +353,9 @@ public class ServiceOrderApiControllerTest extends BaseIT {

        assertThat(responseSO.getCategory()).isEqualTo("Test Category");
        assertThat(responseSO.getDescription()).isEqualTo("A Test Service Order");
        assertThat(responseSO.getOrderItem().size() ).isEqualTo( 1 );
        assertThat(responseSO.getOrderItem().stream().findFirst().get().getService() ).isNotNull();
        assertThat(responseSO.getOrderItem().stream().findFirst().get().getService().getPlace().size() ).isEqualTo(2);

        return response;