private TenantRegistry createSingleTenantRegistry() { synchronized (this) { return new TenantRegistry(tenantService.getDefaultTenant(), applicationContext); } }
public boolean isPartOfTenant(final TenantDO tenant, final PFUserDO user) { if (tenantService.isMultiTenancyAvailable() == false) { return true; } if (tenant == null || user == null || tenant.getAssignedUsers() == null) { return false; } return tenant.getAssignedUsers().contains(user); }
public Collection<TenantDO> getSortedTenants() { if (sortedTenants == null) { final Collection<TenantDO> allTenants = tenantService.getAllTenants(); sortedTenants = new TreeSet<TenantDO>(tenantsComparator); final PFUserDO loggedInUser = ThreadLocalUserContext.getUser(); if (allTenants != null) { for (final TenantDO tenant : allTenants) { if (tenant.isDeleted() == false && tenantService.hasSelectAccess(loggedInUser, tenant, false) == true) { sortedTenants.add(tenant); } } } } return sortedTenants; }
@Override public void populateItem(final Item<ICellPopulator<PFUserDO>> cellItem, final String componentId, final IModel<PFUserDO> rowModel) { final PFUserDO user = rowModel.getObject(); final Collection<TenantDO> tenants = tenantService.getTenantsOfUser(user.getId()); final String tenantNames = tenantService.getTenantShortNames(tenants); final Label label = new Label(componentId, new Model<String>(tenantNames)); cellItem.add(label); cellItemListener.populateItem(cellItem, componentId, rowModel); } });
/** * Sets the current tenant (of the logged-in user) for the given object. If no current tenant found, the default * tenant of the system is used (if exist). If no such tenant exist, null is set as the object's tenant. <br/> * If no multi-tenancy is configured, nothing is done. * * @param obj */ public void setCurrentTenant(final BaseDO<?> obj) { if (tenantService.isMultiTenancyAvailable() == false) { return; } TenantDO currentTenant = getCurrentTenant(); if (currentTenant == null) { currentTenant = tenantService.getDefaultTenant(); } obj.setTenant(currentTenant); }
private void initActualTenant() { if (ThreadLocalUserContext.getUserContext() == null) { return; } UserContext userContext = ThreadLocalUserContext.getUserContext(); TenantService tenantService = ApplicationContextProvider.getApplicationContext().getBean(TenantService.class); PFUserDO user = userContext.getUser(); if (user.getId() != null && tenantService.isMultiTenancyAvailable() == true) { // Try to find the last used tenant of the user: final Integer currentTenantId = (Integer) UserPreferencesHelper.getEntry(USER_PREF_KEY_CURRENT_TENANT); if (currentTenantId != null) { setCurrentTenant(tenantService.getTenant(currentTenantId)); } else { final Collection<TenantDO> tenants = tenantService.getTenantsOfUser(user.getId()); if (CollectionUtils.isNotEmpty(tenants) == true) { setCurrentTenant(tenants.iterator().next()); } } } }
public TenantDO insertDefaultTenant() { log.info("Checking if default tenant exists."); try { String selectDefaultTenant = "SELECT * FROM t_tenant WHERE pk = 1"; SqlRowSet selectResult = jdbcTemplate.queryForRowSet(selectDefaultTenant); if (selectResult != null && selectResult.getRow() > 0) { return tenantService.getDefaultTenant(); } } catch (Exception e) { log.warn("Something went wrong while checking for default tenant: " + e.getMessage()); } log.info("Adding default tenant."); String insertDefaultTenant = "INSERT INTO t_tenant(PK, CREATED, DELETED, LAST_UPDATE, DEFAULT_TENANT, NAME, SHORTNAME, DESCRIPTION, TENANT_ID) " + "VALUES (1,'2016-03-17 14:00:00',FALSE,'2016-03-17 14:00:00',TRUE,'Default tenant','Default tenant','defaultTenant',1)"; jdbcTemplate.execute(insertDefaultTenant); log.info("Adding default tenant finished."); tenantService.resetTenantTableStatus(); return tenantService.getDefaultTenant(); }
final Collection<TenantDO> tenants = tenantService.isMultiTenancyAvailable() == true ? tenantService.getTenantsOfLoggedInUser() : null; if (tenants == null || tenants.size() <= 1) {
@Override public Collection<TenantDO> toChoices(final Collection<String> ids) { final List<TenantDO> list = new ArrayList<TenantDO>(); if (ids == null) { return list; } for (final String str : ids) { final Integer tenantId = NumberHelper.parseInteger(str); if (tenantId == null) { continue; } final TenantDO tenant = tenantService.getTenant(tenantId); if (tenant != null) { list.add(tenant); } } return list; }
String tenantLog = ""; if (tenant != null) { tenantLog = " for tenant " + tenantService.getLogName(tenant);
public TenantRegistry getTenantRegistry(TenantDO tenant) if (tenantService.isMultiTenancyAvailable() == false) { if (tenant != null && !tenant.isDefault()) { log.warn("Oups, why call getTenantRegistry with tenant " + tenant.getId() final TenantDO defaultTenant = tenantService.getDefaultTenant(); if (defaultTenant != null) { final PFUserDO user = ThreadLocalUserContext.getUser();
/** * @param tenantIds * @return */ public Collection<TenantDO> getSortedTenants(final String tenantIds) { if (StringUtils.isEmpty(tenantIds) == true) { return null; } sortedTenants = new TreeSet<TenantDO>(tenantsComparator); final int[] ids = StringHelper.splitToInts(tenantIds, ",", false); for (final int id : ids) { final TenantDO tenant = tenantService.getTenant(id); if (tenant != null) { sortedTenants.add(tenant); } else { log.warn("Tenant with id '" + id + "' not found in UserTenantCache. tenantIds string was: " + tenantIds); } } return sortedTenants; }
public TenantDO getCurrentTenant() { final UserContext userContext = ThreadLocalUserContext.getUserContext(); final TenantDO currentTenant = userContext != null ? userContext.getCurrentTenant() : tenantService.getDefaultTenant(); return currentTenant; }
public boolean isPartOfTenant(final Integer tenantId, final BaseDO<?> obj) { if (tenantService.isMultiTenancyAvailable() == false) { return true; } if (obj == null) { return false; } if (tenantId == null || obj.getTenantId() == null) { return false; } return tenantId.equals(obj.getTenantId()); }
/** * @param tenantIds * @return */ public List<String> getTenantNames(final String tenantIds) { if (StringUtils.isEmpty(tenantIds) == true) { return null; } final int[] ids = StringHelper.splitToInts(tenantIds, ",", false); final List<String> list = new ArrayList<>(); for (final int id : ids) { final TenantDO tenant = tenantService.getTenant(id); if (tenant != null) { list.add(tenant.getName()); } else { log.warn("Tenant with id '" + id + "' not found in UserTenantCache. tenantIds string was: " + tenantIds); } } return list; }
public TeamEventDO getByUid(Integer calendarId, final String uid, final boolean excludeDeleted) { if (uid == null) { return null; } final StringBuilder sqlQuery = new StringBuilder(); final List<Object> params = new ArrayList<>(); sqlQuery.append("select e from TeamEventDO e where e.uid = :uid AND e.tenant = :tenant"); params.add("uid"); params.add(uid); params.add("tenant"); params.add(ThreadLocalUserContext.getUser() != null ? ThreadLocalUserContext.getUser().getTenant() : tenantService.getDefaultTenant()); if (excludeDeleted) { sqlQuery.append(" AND e.deleted = :deleted"); params.add("deleted"); params.add(false); } // workaround to still handle old requests if (calendarId != null) { sqlQuery.append(" AND e.calendar.id = :calendarId"); params.add("calendarId"); params.add(calendarId); } try { return emgrFac.runRoTrans(emgr -> emgr.selectSingleAttached(TeamEventDO.class, sqlQuery.toString(), params.toArray())); } catch (NoResultException | NonUniqueResultException e) { return null; } }
/** * @param tenant * @param obj * @return true if id of tenant is equals to tenant id of the given object, otherwise false. */ public boolean isPartOfTenant(final TenantDO tenant, final BaseDO<?> obj) { if (tenantService.isMultiTenancyAvailable() == false) { return true; } if (tenant == null) { return false; } return isPartOfTenant(tenant.getId(), obj); }
private void addAssignedTenants() { final FieldsetPanel fs = gridBuilder.newFieldset(getString("multitenancy.assignedTenants")).setLabelSide(false); final Collection<Integer> set = userService.getAssignedTenants(data); final TenantsProvider tenantsProvider = new TenantsProvider(tenantService); assignTenantsListHelper = new MultiChoiceListHelper<TenantDO>().setComparator(new TenantsComparator()).setFullList( tenantsProvider.getSortedTenants()); if (set != null) { for (final Integer tenantId : set) { final TenantDO tenant = tenantService.getTenant(tenantId); if (tenant != null) { assignTenantsListHelper.addOriginalAssignedItem(tenant).assignItem(tenant); } } } final Select2MultiChoice<TenantDO> tenants = new Select2MultiChoice<TenantDO>(fs.getSelect2MultiChoiceId(), new PropertyModel<Collection<TenantDO>>(this.assignTenantsListHelper, "assignedItems"), tenantsProvider); fs.add(tenants); }
@Override public List<PFUserDO> getAllUsers() { try { TenantDO tenant = ThreadLocalUserContext.getUser().getTenant() != null ? ThreadLocalUserContext.getUser().getTenant() : tenantService.getDefaultTenant(); return userDao.internalLoadAll(tenant); } catch (final Exception ex) { log.error( "******* Exception while getting users from data-base (OK only in case of migration from older versions): " + ex.getMessage(), ex); return new ArrayList<PFUserDO>(); } }
public TenantRegistry getTenantRegistry() { if (tenantService.isMultiTenancyAvailable() == false) { return getSingleTenantRegistry(); } final TenantDO tenant = tenantChecker.getCurrentTenant(); return getTenantRegistry(tenant); }