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