public void populateItem(final Item<ICellPopulator<TenantDO>> item, final String componentId, final IModel<TenantDO> rowModel) { final TenantDO tenant = rowModel.getObject(); appendCssClasses(item, tenant.getId(), tenant.isDeleted()); if (tenant.isDefault() == true) { appendCssClasses(item, RowCssClass.IMPORTANT_ROW); } } };
@Transactional(readOnly = true, propagation = Propagation.SUPPORTS) public List<O> internalLoadAll(final TenantDO tenant) { if (tenant == null) { @SuppressWarnings("unchecked") final List<O> list = (List<O>) hibernateTemplate .find("from " + clazz.getSimpleName() + " t where tenant_id is null"); return list; } if (tenant.isDefault() == true) { @SuppressWarnings("unchecked") final List<O> list = (List<O>) hibernateTemplate.find( "from " + clazz.getSimpleName() + " t where tenant_id = ? or tenant_id is null", tenant.getId()); return list; } else { @SuppressWarnings("unchecked") final List<O> list = (List<O>) hibernateTemplate .find("from " + clazz.getSimpleName() + " t where tenant_id = ?", tenant.getId()); return list; } }
if (o instanceof TenantDO) { TenantDO t = (TenantDO) o; if (t.isDefault()) { LOG.info("Found default tenant"); defaultTenant = t;
if (tenant.isDefault() == true) { this.defaultTenant = tenant;
/** * Creates ProjectForge's system groups for the new tenant.<br/> * Creates for every user an history entry if the user is part of this new tenant. * * @param tenant * @see org.projectforge.framework.persistence.api.BaseDao#afterSave(org.projectforge.core.ExtendedBaseDO) */ @Override public void afterSave(final TenantDO tenant) { final PFUserDO adminUser = ThreadLocalUserContext.getUser(); if (tenant.isDefault() == false) { // The groups do already exist for the default tenant. initDatabaseDao.internalCreateProjectForgeGroups(tenant, adminUser); } else { // Clear the dummy entry: TenantRegistryMap.getInstance().clear(); } final Collection<TenantDO> tenantList = new ArrayList<TenantDO>(); tenantList.add(tenant); if (tenant.getAssignedUsers() != null) { // Create history entry of PFUserDO for all assigned users: for (final PFUserDO user : tenant.getAssignedUsers()) { createHistoryEntry(user, null, tenantList); } } }
adminUsers.add(adminUser); Set<PFUserDO> adminUsersForNewTenants = null; if (tenant.isDefault() == true) {
if (tenant != null && !tenant.isDefault()) { log.warn("Oups, why call getTenantRegistry with tenant " + tenant.getId() + " if ProjectForge is running in single tenant mode?");
/** * @see org.projectforge.framework.persistence.api.BaseDao#onSaveOrModify(org.projectforge.core.ExtendedBaseDO) */ @Override protected void onSaveOrModify(final TenantDO obj) { if (obj.isDefault() == false) { return; } final TenantDO defaultTenant = getDefaultTenant(); if (defaultTenant == null) { return; } if (obj.getId() == null || ObjectUtils.equals(defaultTenant.getId(), obj.getId()) == false) { throw new UserException("multitenancy.error.maxOnlyOneTenantShouldBeDefault"); } }
/** * * @param filter * @param ignoreTenant default is false. */ public QueryFilter(final BaseSearchFilter filter, final boolean ignoreTenant) { if (filter == null) { this.filter = new BaseSearchFilter(); } else { this.filter = filter; } TenantService tenantService = ApplicationContextProvider.getApplicationContext().getBean(TenantService.class); if (ignoreTenant == false && tenantService.isMultiTenancyAvailable() == true) { final UserContext userContext = ThreadLocalUserContext.getUserContext(); final TenantDO currentTenant = userContext.getCurrentTenant(); if (currentTenant != null) { if (currentTenant.isDefault() == true) { this.add(Restrictions.or(Restrictions.eq("tenant", userContext.getCurrentTenant()), Restrictions.isNull("tenant"))); } else { this.add(Restrictions.eq("tenant", userContext.getCurrentTenant())); } } } }
/** * Checks only if the current chosen tenant of the logged-in-user fit the tenant of the given object. This means the * user's current tenant is the same tenant the given object is assigned to, or the current tenant is the default * tenant and the given object is not assigned to a tenant.<br/> * If no multi-tenancy is configured, always true is returned. * * @param obj * @return */ public boolean isPartOfCurrentTenant(final BaseDO<?> obj) { if (tenantService.isMultiTenancyAvailable() == false) { return true; } if (obj == null) { return false; } if (obj instanceof TenantDO && isSuperAdmin(ThreadLocalUserContext.getUser()) == true) { return true; } final TenantDO currentTenant = getCurrentTenant(); if (currentTenant == null) { return false; } if (obj.getTenantId() == null) { // The given object isn't assigned to a tenant, so assuming the default tenant. return currentTenant.isDefault(); } return obj.getTenantId().equals(currentTenant.getId()); }