@Test public void hasPermissionToAddResourceTypeTemplateWhenUserHasPermissionToCreateTemplateResourceTypeAndIsApplicationResTypeAndIsNotTestingMode() { // given ResourceTypeEntity app = ResourceTypeEntityBuilder.APPLICATION_TYPE; when(sessionContext.isCallerInRole(APP_DEVELOPER)).thenReturn(true); when(sessionContext.getCallerPrincipal()).thenReturn(principal); myRoles = new HashMap<>(); RestrictionEntity res = new RestrictionEntity(); res.setAction(Action.CREATE); res.setResourceTypePermission(ResourceTypePermission.ANY); myRoles.put(APP_DEVELOPER, Arrays.asList(new RestrictionDTOBuilder().mockRestrictionDTO(Permission.RESOURCETYPE_TEMPLATE, res))); permissionService.rolesWithRestrictions = myRoles; // when boolean result = permissionService.hasPermissionToAddResourceTypeTemplate(app, false); // then Assert.assertTrue(result); }
@Test public void hasNoPermissionToAddResourceTypeTemplateWhenUserHasPermissionToUpdateResourceTypeAndIsApplicationResTypeAndIsNotTestingMode() { // given ResourceTypeEntity app = ResourceTypeEntityBuilder.APPLICATION_TYPE; when(sessionContext.isCallerInRole(APP_DEVELOPER)).thenReturn(true); when(sessionContext.getCallerPrincipal()).thenReturn(principal); myRoles = new HashMap<>(); RestrictionEntity res = new RestrictionEntity(); res.setAction(Action.ALL); res.setResourceTypePermission(ResourceTypePermission.ANY); myRoles.put(APP_DEVELOPER, Arrays.asList(new RestrictionDTOBuilder().mockRestrictionDTO(Permission.RESOURCETYPE, res))); permissionService.rolesWithRestrictions = myRoles; // when boolean result = permissionService.hasPermissionToAddResourceTypeTemplate(app, false); // then Assert.assertFalse(result); }
@Test public void hasNoPermissionToAddResourceTypeTemplateWhenUserHasOnlyResourceTypePermissionAndIsApplicationResTypeAndIsNotTestingMode() { // given ResourceTypeEntity app = ResourceTypeEntityBuilder.APPLICATION_TYPE; when(sessionContext.isCallerInRole(APP_DEVELOPER)).thenReturn(true); when(sessionContext.getCallerPrincipal()).thenReturn(principal); myRoles = new HashMap<>(); RestrictionEntity res = new RestrictionEntity(); res.setAction(Action.ALL); res.setResourceTypePermission(ResourceTypePermission.ANY); myRoles.put(APP_DEVELOPER, Arrays.asList(new RestrictionDTOBuilder().mockRestrictionDTO(Permission.RESOURCETYPE, res))); permissionService.rolesWithRestrictions = myRoles; // when boolean result = permissionService.hasPermissionToAddResourceTypeTemplate(app, false); // then Assert.assertFalse(result); }
@Test public void hasPermissionToAddResourceTypeTemplateWhenUserHasResourceTypePermissionAndIsNotTestingMode() { // given ResourceTypeEntity as = ResourceTypeEntityBuilder.APPLICATION_SERVER_TYPE; when(sessionContext.isCallerInRole(CONFIG_ADMIN)).thenReturn(true); when(sessionContext.getCallerPrincipal()).thenReturn(principal); myRoles = new HashMap<>(); RestrictionEntity res = new RestrictionEntity(); res.setAction(Action.ALL); res.setResourceTypePermission(ResourceTypePermission.ANY); myRoles.put(CONFIG_ADMIN, Arrays.asList(new RestrictionDTOBuilder().mockRestrictionDTO(Permission.RESOURCETYPE, res), new RestrictionDTOBuilder().mockRestrictionDTO(Permission.RESOURCETYPE_TEMPLATE, res))); permissionService.rolesWithRestrictions = myRoles; // when boolean result = permissionService.hasPermissionToAddResourceTypeTemplate(as, false); // then Assert.assertTrue(result); }
@Test public void shouldNotAllowToRemoveInstanceOfNonDefaultResTypeIfHasPermissionToDeleteInstancesOfDefaultResourceTypeOnly(){ // given ResourceTypeEntity nonDefaultResType = new ResourceTypeEntity(); when(sessionContext.isCallerInRole(SERVER_ADMIN)).thenReturn(true); when(sessionContext.getCallerPrincipal()).thenReturn(principal); myRoles = new HashMap<>(); PermissionEntity permission = new PermissionEntity(); permission.setValue(Permission.RESOURCE.name()); RestrictionEntity res = new RestrictionEntity(); res.setAction(Action.DELETE); res.setResourceTypePermission(ResourceTypePermission.DEFAULT_ONLY); res.setPermission(permission); myRoles.put(SERVER_ADMIN, Arrays.asList(new RestrictionDTO(res))); permissionService.rolesWithRestrictions = myRoles; // when boolean result = permissionService.hasPermissionToRemoveInstanceOfResType(nonDefaultResType); // then Assert.assertFalse(result); }
@Test public void shouldNotAllowToRemoveDefaultInstanceOfResTypeIfHasPermissionForResourcesOnly(){ // given ResourceTypeEntity applicationResTypeEntity = new ResourceTypeEntity(); applicationResTypeEntity.setName(DefaultResourceTypeDefinition.APPLICATION.name()); when(sessionContext.isCallerInRole(CONFIG_ADMIN)).thenReturn(true); when(sessionContext.getCallerPrincipal()).thenReturn(principal); myRoles = new HashMap<>(); PermissionEntity permission = new PermissionEntity(); permission.setValue(Permission.RESOURCE.name()); RestrictionEntity res = new RestrictionEntity(); res.setAction(Action.DELETE); res.setResourceTypePermission(ResourceTypePermission.NON_DEFAULT_ONLY); res.setPermission(permission); myRoles.put(CONFIG_ADMIN, Arrays.asList(new RestrictionDTO(res))); permissionService.rolesWithRestrictions = myRoles; // when boolean result = permissionService.hasPermissionToRemoveInstanceOfResType(applicationResTypeEntity); // then Assert.assertFalse(result); }
@Test public void shouldAllowToRemoveDefaultInstanceOfResTypeIfHasPermissionToDeleteInstancesOfDefaultResourceType(){ // given ResourceTypeEntity applicationResTypeEntity = new ResourceTypeEntity(); applicationResTypeEntity.setName(DefaultResourceTypeDefinition.APPLICATION.name()); when(sessionContext.isCallerInRole(SERVER_ADMIN)).thenReturn(true); when(sessionContext.getCallerPrincipal()).thenReturn(principal); myRoles = new HashMap<>(); PermissionEntity permission = new PermissionEntity(); permission.setValue(Permission.RESOURCE.name()); RestrictionEntity res = new RestrictionEntity(); res.setAction(Action.ALL); res.setResourceTypePermission(ResourceTypePermission.DEFAULT_ONLY); res.setPermission(permission); myRoles.put(SERVER_ADMIN, Arrays.asList(new RestrictionDTO(res))); permissionService.rolesWithRestrictions = myRoles; // when boolean result = permissionService.hasPermissionToRemoveInstanceOfResType(applicationResTypeEntity); // then Assert.assertTrue(result); }
@Test public void shouldReturnTrueIfASimilarButNotResourceTypePermissionRestrictedUserRestrictionExists() { // given UserRestrictionEntity userRestrictionEntity = new UserRestrictionEntity(); userRestrictionEntity.setName("tester"); PermissionEntity permission = new PermissionEntity(); permission.setValue(Permission.RESOURCE.name()); RestrictionEntity existingRestriction = new RestrictionEntity(); existingRestriction.setUser(userRestrictionEntity); existingRestriction.setAction(Action.ALL); existingRestriction.setResourceTypePermission(ResourceTypePermission.ANY); existingRestriction.setPermission(permission); RestrictionEntity anotherExistingRestriction = new RestrictionEntity(); anotherExistingRestriction.setUser(userRestrictionEntity); anotherExistingRestriction.setAction(Action.ALL); anotherExistingRestriction.setResourceTypePermission(ResourceTypePermission.DEFAULT_ONLY); anotherExistingRestriction.setPermission(permission); RestrictionEntity newRestriction = new RestrictionEntity(); newRestriction.setUser(userRestrictionEntity); newRestriction.setAction(Action.ALL); newRestriction.setResourceTypePermission(ResourceTypePermission.NON_DEFAULT_ONLY); newRestriction.setPermission(permission); myRoles = new HashMap<>(); permissionService.rolesWithRestrictions = myRoles; when(permissionRepository.getUserWithRestrictions("tester")).thenReturn(Arrays.asList(existingRestriction, anotherExistingRestriction)); // when boolean exists = permissionService.identicalOrMoreGeneralRestrictionExists(newRestriction); // then Assert.assertTrue(exists); }
@Test public void shouldReturnFalseIfASimilarButResourceTypePermissionRestrictedUserRestrictionExists() { // given UserRestrictionEntity userRestrictionEntity = new UserRestrictionEntity(); userRestrictionEntity.setName("tester"); PermissionEntity permission = new PermissionEntity(); permission.setValue(Permission.RESOURCE.name()); RestrictionEntity existingRestriction = new RestrictionEntity(); existingRestriction.setUser(userRestrictionEntity); existingRestriction.setAction(Action.CREATE); existingRestriction.setResourceTypePermission(ResourceTypePermission.NON_DEFAULT_ONLY); existingRestriction.setPermission(permission); RestrictionEntity anotherExistingRestriction = new RestrictionEntity(); anotherExistingRestriction.setUser(userRestrictionEntity); anotherExistingRestriction.setAction(Action.ALL); anotherExistingRestriction.setResourceTypePermission(ResourceTypePermission.DEFAULT_ONLY); anotherExistingRestriction.setPermission(permission); RestrictionEntity newRestriction = new RestrictionEntity(); newRestriction.setUser(userRestrictionEntity); newRestriction.setAction(Action.CREATE); newRestriction.setResourceTypePermission(ResourceTypePermission.ANY); newRestriction.setPermission(permission); myRoles = new HashMap<>(); permissionService.rolesWithRestrictions = myRoles; when(permissionRepository.getUserWithRestrictions("tester")).thenReturn(Arrays.asList(existingRestriction, anotherExistingRestriction)); // when boolean exists = permissionService.identicalOrMoreGeneralRestrictionExists(newRestriction); // then Assert.assertFalse(exists); }
restriction.setResourceTypePermission(resourceTypePermission);