Merge pull request #14156 from dashevchenko/tenantDeletion
Added API for tenant admins to delete the entire tenant
This commit is contained in:
commit
729ab3655a
@ -115,7 +115,7 @@ public class TenantController extends BaseController {
|
||||
|
||||
@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)
|
||||
@PreAuthorize("hasAuthority('SYS_ADMIN')")
|
||||
@PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN')")
|
||||
@RequestMapping(value = "/tenant/{tenantId}", method = RequestMethod.DELETE)
|
||||
@ResponseStatus(value = HttpStatus.OK)
|
||||
public void deleteTenant(@Parameter(description = TENANT_ID_PARAM_DESCRIPTION)
|
||||
|
||||
@ -73,7 +73,7 @@ public class TenantAdminPermissions extends AbstractPermissions {
|
||||
};
|
||||
|
||||
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
|
||||
@SuppressWarnings("unchecked")
|
||||
|
||||
@ -243,6 +243,29 @@ public class TenantControllerTest extends AbstractControllerTest {
|
||||
.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
|
||||
public void testFindTenants() throws Exception {
|
||||
loginSysAdmin();
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user