extended deleteTenant API to allow tenant admins delete tenant
This commit is contained in:
		
							parent
							
								
									e39944ee9d
								
							
						
					
					
						commit
						fac84c4cfc
					
				@ -115,7 +115,7 @@ public class TenantController extends BaseController {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    @ApiOperation(value = "Delete Tenant (deleteTenant)",
 | 
					    @ApiOperation(value = "Delete Tenant (deleteTenant)",
 | 
				
			||||||
            notes = "Deletes the tenant, it's customers, rule chains, devices and all other related entities. Referencing non-existing tenant Id will cause an error." + SYSTEM_AUTHORITY_PARAGRAPH)
 | 
					            notes = "Deletes the tenant, it's customers, rule chains, devices and all other related entities. Referencing non-existing tenant Id will cause an error." + SYSTEM_AUTHORITY_PARAGRAPH)
 | 
				
			||||||
    @PreAuthorize("hasAuthority('SYS_ADMIN')")
 | 
					    @PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN')")
 | 
				
			||||||
    @RequestMapping(value = "/tenant/{tenantId}", method = RequestMethod.DELETE)
 | 
					    @RequestMapping(value = "/tenant/{tenantId}", method = RequestMethod.DELETE)
 | 
				
			||||||
    @ResponseStatus(value = HttpStatus.OK)
 | 
					    @ResponseStatus(value = HttpStatus.OK)
 | 
				
			||||||
    public void deleteTenant(@Parameter(description = TENANT_ID_PARAM_DESCRIPTION)
 | 
					    public void deleteTenant(@Parameter(description = TENANT_ID_PARAM_DESCRIPTION)
 | 
				
			||||||
 | 
				
			|||||||
@ -73,7 +73,7 @@ public class TenantAdminPermissions extends AbstractPermissions {
 | 
				
			|||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private static final PermissionChecker tenantPermissionChecker =
 | 
					    private static final PermissionChecker tenantPermissionChecker =
 | 
				
			||||||
            new PermissionChecker.GenericPermissionChecker(Operation.READ, Operation.READ_ATTRIBUTES, Operation.READ_TELEMETRY) {
 | 
					            new PermissionChecker.GenericPermissionChecker(Operation.READ, Operation.READ_ATTRIBUTES, Operation.READ_TELEMETRY, Operation.DELETE) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                @Override
 | 
					                @Override
 | 
				
			||||||
                @SuppressWarnings("unchecked")
 | 
					                @SuppressWarnings("unchecked")
 | 
				
			||||||
 | 
				
			|||||||
@ -243,6 +243,29 @@ public class TenantControllerTest extends AbstractControllerTest {
 | 
				
			|||||||
                .andExpect(statusReason(containsString(msgErrorNoFound("Tenant", tenantIdStr))));
 | 
					                .andExpect(statusReason(containsString(msgErrorNoFound("Tenant", tenantIdStr))));
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Test
 | 
				
			||||||
 | 
					    public void testDeleteTenantByTenantAdmin() throws Exception {
 | 
				
			||||||
 | 
					        loginSysAdmin();
 | 
				
			||||||
 | 
					        Tenant tenant = new Tenant();
 | 
				
			||||||
 | 
					        tenant.setTitle("My tenant");
 | 
				
			||||||
 | 
					        Tenant savedTenant = saveTenant(tenant);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //login as tenant admin
 | 
				
			||||||
 | 
					        User tenantAdminUser = new User();
 | 
				
			||||||
 | 
					        tenantAdminUser.setAuthority(Authority.TENANT_ADMIN);
 | 
				
			||||||
 | 
					        tenantAdminUser.setTenantId(savedTenant.getId());
 | 
				
			||||||
 | 
					        tenantAdminUser.setEmail("tenantToDelete@thingsboard.io");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        createUserAndLogin(tenantAdminUser, TENANT_ADMIN_PASSWORD);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        String tenantIdStr = savedTenant.getId().getId().toString();
 | 
				
			||||||
 | 
					        deleteTenant(savedTenant.getId());
 | 
				
			||||||
 | 
					        loginSysAdmin();
 | 
				
			||||||
 | 
					        doGet("/api/tenant/" + tenantIdStr)
 | 
				
			||||||
 | 
					                .andExpect(status().isNotFound())
 | 
				
			||||||
 | 
					                .andExpect(statusReason(containsString(msgErrorNoFound("Tenant", tenantIdStr))));
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Test
 | 
					    @Test
 | 
				
			||||||
    public void testFindTenants() throws Exception {
 | 
					    public void testFindTenants() throws Exception {
 | 
				
			||||||
        loginSysAdmin();
 | 
					        loginSysAdmin();
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user