Introduce findTenantByName
This commit is contained in:
parent
f12ded5f9b
commit
5fb317c57d
@ -20,7 +20,6 @@ import lombok.Getter;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.context.ApplicationEventPublisher;
|
||||
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
|
||||
import org.springframework.security.core.userdetails.UsernameNotFoundException;
|
||||
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
|
||||
@ -37,7 +36,6 @@ import org.thingsboard.server.common.data.id.TenantId;
|
||||
import org.thingsboard.server.common.data.oauth2.OAuth2Client;
|
||||
import org.thingsboard.server.common.data.oauth2.OAuth2MapperConfig;
|
||||
import org.thingsboard.server.common.data.page.PageData;
|
||||
import org.thingsboard.server.common.data.page.PageDataIterable;
|
||||
import org.thingsboard.server.common.data.page.PageLink;
|
||||
import org.thingsboard.server.common.data.security.Authority;
|
||||
import org.thingsboard.server.common.data.security.UserCredentials;
|
||||
@ -49,7 +47,6 @@ import org.thingsboard.server.dao.tenant.TenantService;
|
||||
import org.thingsboard.server.dao.user.UserService;
|
||||
import org.thingsboard.server.service.entitiy.tenant.TbTenantService;
|
||||
import org.thingsboard.server.service.entitiy.user.TbUserService;
|
||||
import org.thingsboard.server.service.install.InstallScripts;
|
||||
import org.thingsboard.server.service.security.model.SecurityUser;
|
||||
import org.thingsboard.server.service.security.model.UserPrincipal;
|
||||
|
||||
@ -80,18 +77,12 @@ public abstract class AbstractOAuth2ClientMapper {
|
||||
@Autowired
|
||||
private DashboardService dashboardService;
|
||||
|
||||
@Autowired
|
||||
private InstallScripts installScripts;
|
||||
|
||||
@Autowired
|
||||
private TbUserService tbUserService;
|
||||
|
||||
@Autowired
|
||||
protected TbTenantProfileCache tenantProfileCache;
|
||||
|
||||
@Autowired
|
||||
private ApplicationEventPublisher eventPublisher;
|
||||
|
||||
@Value("${edges.enabled}")
|
||||
@Getter
|
||||
private boolean edgesEnabled;
|
||||
@ -121,8 +112,7 @@ public abstract class AbstractOAuth2ClientMapper {
|
||||
} else {
|
||||
user.setAuthority(Authority.CUSTOMER_USER);
|
||||
}
|
||||
TenantId tenantId = oauth2User.getTenantId() != null ?
|
||||
oauth2User.getTenantId() : getTenantId(oauth2User.getTenantName());
|
||||
TenantId tenantId = oauth2User.getTenantId() != null ? oauth2User.getTenantId() : getTenantId(oauth2User.getTenantName());
|
||||
user.setTenantId(tenantId);
|
||||
CustomerId customerId = oauth2User.getCustomerId() != null ?
|
||||
oauth2User.getCustomerId() : getCustomerId(user.getTenantId(), oauth2User.getCustomerName());
|
||||
@ -174,15 +164,13 @@ public abstract class AbstractOAuth2ClientMapper {
|
||||
}
|
||||
}
|
||||
|
||||
private TenantId getTenantId(String tenantName) throws Exception {
|
||||
PageDataIterable<Tenant> tenantIterator = new PageDataIterable<>(tenantService::findTenants, 1024);
|
||||
for (Tenant tenant : tenantIterator) {
|
||||
if (tenant.getTitle().equals(tenantName)) {
|
||||
return tenant.getId();
|
||||
}
|
||||
private TenantId getTenantId(String name) throws Exception {
|
||||
Tenant tenant = tenantService.findTenantByName(name);
|
||||
if (tenant != null) {
|
||||
return tenant.getId();
|
||||
}
|
||||
Tenant tenant = new Tenant();
|
||||
tenant.setTitle(tenantName);
|
||||
tenant = new Tenant();
|
||||
tenant.setTitle(name);
|
||||
tenant = tbTenantService.save(tenant);
|
||||
return tenant.getId();
|
||||
}
|
||||
|
||||
@ -49,7 +49,10 @@ public interface TenantService extends EntityDaoService {
|
||||
|
||||
List<TenantId> findTenantIdsByTenantProfileId(TenantProfileId tenantProfileId);
|
||||
|
||||
Tenant findTenantByName(String name);
|
||||
|
||||
void deleteTenants();
|
||||
|
||||
PageData<TenantId> findTenantsIds(PageLink pageLink);
|
||||
|
||||
}
|
||||
|
||||
@ -38,10 +38,6 @@ import java.util.List;
|
||||
import java.util.UUID;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
||||
/**
|
||||
* Created by Valerii Sosliuk on 4/30/2017.
|
||||
*/
|
||||
@Component
|
||||
@SqlDao
|
||||
public class JpaTenantDao extends JpaAbstractDao<TenantEntity, Tenant> implements TenantDao {
|
||||
@ -97,8 +93,14 @@ public class JpaTenantDao extends JpaAbstractDao<TenantEntity, Tenant> implement
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Tenant findTenantByName(TenantId tenantId, String name) {
|
||||
return DaoUtil.getData(tenantRepository.findTenantByTitle(name));
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<TenantFields> findNextBatch(UUID id, int batchSize) {
|
||||
return tenantRepository.findNextBatch(id, Limit.of(batchSize));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -48,7 +48,7 @@ public interface TenantRepository extends JpaRepository<TenantEntity, UUID> {
|
||||
"LEFT JOIN TenantProfileEntity p on p.id = t.tenantProfileId " +
|
||||
"WHERE (:textSearch IS NULL OR ilike(t.title, CONCAT('%', :textSearch, '%')) = true)")
|
||||
Page<TenantInfoEntity> findTenantInfosNextPage(@Param("textSearch") String textSearch,
|
||||
Pageable pageable);
|
||||
Pageable pageable);
|
||||
|
||||
@Query("SELECT t.id FROM TenantEntity t")
|
||||
Page<UUID> findTenantsIds(Pageable pageable);
|
||||
@ -59,4 +59,7 @@ public interface TenantRepository extends JpaRepository<TenantEntity, UUID> {
|
||||
@Query("SELECT new org.thingsboard.server.common.data.edqs.fields.TenantFields(t.id, t.createdTime, t.title, t.version," +
|
||||
"t.additionalInfo, t.country, t.state, t.city, t.address, t.address2, t.zip, t.phone, t.email, t.region) FROM TenantEntity t WHERE t.id > :id ORDER BY t.id")
|
||||
List<TenantFields> findNextBatch(@Param("id") UUID id, Limit limit);
|
||||
|
||||
TenantEntity findTenantByTitle(String name);
|
||||
|
||||
}
|
||||
|
||||
@ -30,20 +30,8 @@ public interface TenantDao extends Dao<Tenant> {
|
||||
|
||||
TenantInfo findTenantInfoById(TenantId tenantId, UUID id);
|
||||
|
||||
/**
|
||||
* Save or update tenant object
|
||||
*
|
||||
* @param tenant the tenant object
|
||||
* @return saved tenant object
|
||||
*/
|
||||
Tenant save(TenantId tenantId, Tenant tenant);
|
||||
|
||||
/**
|
||||
* Find tenants by page link.
|
||||
*
|
||||
* @param pageLink the page link
|
||||
* @return the list of tenant objects
|
||||
*/
|
||||
PageData<Tenant> findTenants(TenantId tenantId, PageLink pageLink);
|
||||
|
||||
PageData<TenantInfo> findTenantInfos(TenantId tenantId, PageLink pageLink);
|
||||
@ -52,4 +40,6 @@ public interface TenantDao extends Dao<Tenant> {
|
||||
|
||||
List<TenantId> findTenantIdsByTenantProfileId(TenantProfileId tenantProfileId);
|
||||
|
||||
Tenant findTenantByName(TenantId tenantId, String name);
|
||||
|
||||
}
|
||||
|
||||
@ -206,6 +206,12 @@ public class TenantServiceImpl extends AbstractCachedEntityService<TenantId, Ten
|
||||
return tenantDao.findTenantIdsByTenantProfileId(tenantProfileId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Tenant findTenantByName(String name) {
|
||||
log.trace("Executing findTenantByName [{}]", name);
|
||||
return tenantDao.findTenantByName(TenantId.SYS_TENANT_ID, name);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteTenants() {
|
||||
log.trace("Executing deleteTenants");
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user