use of org.craftercms.profile.api.Tenant in project profile by craftercms.
the class TenantServiceImpl method addRoles.
@Override
public Tenant addRoles(String tenantName, final Collection<String> roles) throws ProfileException {
Tenant tenant = updateTenant(tenantName, new UpdateCallback() {
@Override
public void doWithTenant(TenantUpdater tenantUpdater) throws ProfileException {
tenantUpdater.addAvailableRoles(roles);
}
});
logger.debug(LOG_KEY_ROLES_ADDED, roles, tenantName);
return tenant;
}
use of org.craftercms.profile.api.Tenant in project profile by craftercms.
the class TenantServiceImpl method updateTenant.
@Override
public Tenant updateTenant(final Tenant tenant) throws ProfileException {
final String tenantName = tenant.getName();
Tenant updatedTenant = updateTenant(tenant.getName(), new UpdateCallback() {
@Override
public void doWithTenant(TenantUpdater tenantUpdater) throws ProfileException {
Tenant originalTenant = tenantUpdater.getTenant();
Collection<String> originalRoles = originalTenant.getAvailableRoles();
Collection<String> newRoles = tenant.getAvailableRoles();
Collection<AttributeDefinition> originalDefinitions = originalTenant.getAttributeDefinitions();
Collection<AttributeDefinition> newDefinitions = tenant.getAttributeDefinitions();
Collection<String> removedRoles = CollectionUtils.subtract(originalRoles, newRoles);
Collection<AttributeDefinition> removedDefinitions = CollectionUtils.subtract(originalDefinitions, newDefinitions);
for (String removedRole : removedRoles) {
removeRoleFromProfiles(tenantName, removedRole);
}
for (AttributeDefinition removedDefinition : removedDefinitions) {
removeAttributeFromProfiles(tenantName, removedDefinition.getName());
}
tenantUpdater.setVerifyNewProfiles(tenant.isVerifyNewProfiles());
tenantUpdater.setSsoEnabled(tenant.isSsoEnabled());
tenantUpdater.setAvailableRoles(tenant.getAvailableRoles());
tenantUpdater.setAttributeDefinitions(tenant.getAttributeDefinitions());
}
});
for (AttributeDefinition definition : updatedTenant.getAttributeDefinitions()) {
addDefaultValue(tenantName, definition.getName(), definition.getDefaultValue());
}
return updatedTenant;
}
use of org.craftercms.profile.api.Tenant in project profile by craftercms.
the class TenantServiceImpl method removeRoles.
@Override
public Tenant removeRoles(final String tenantName, final Collection<String> roles) throws ProfileException {
Tenant tenant = updateTenant(tenantName, new UpdateCallback() {
@Override
public void doWithTenant(TenantUpdater tenantUpdater) throws ProfileException {
for (String role : roles) {
removeRoleFromProfiles(tenantName, role);
}
tenantUpdater.removeAvailableRoles(roles);
}
});
logger.debug(LOG_KEY_ROLES_REMOVED, roles, tenantName);
return tenant;
}
use of org.craftercms.profile.api.Tenant in project profile by craftercms.
the class TenantServiceIT method testRemoveRoles.
@Test
public void testRemoveRoles() throws Exception {
tenantService.createTenant(getCorporateTenant());
try {
Tenant tenant = tenantService.removeRoles(CORPORATE_TENANT_NAME, Arrays.asList(ADMIN_ROLE));
Set<String> expectedRoles = new HashSet<>(CORPORATE_ROLES);
expectedRoles.remove(ADMIN_ROLE);
assertNotNull(tenant);
assertEquals(expectedRoles, tenant.getAvailableRoles());
} finally {
tenantService.deleteTenant(CORPORATE_TENANT_NAME);
}
}
use of org.craftercms.profile.api.Tenant in project profile by craftercms.
the class TenantServiceIT method testDeleteTenant.
@Test
public void testDeleteTenant() throws Exception {
Tenant tenant = tenantService.createTenant(getCorporateTenant());
assertNotNull(tenant);
tenantService.deleteTenant(tenant.getName());
tenant = tenantService.getTenant(tenant.getName());
assertNull(tenant);
}
Aggregations