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); }
@Override public String getUsernameCommaList(TenantDO tenant) { if (tenant.getAssignedUsers() == null) { return ""; } final List<String> list = new ArrayList<String>(); for (final PFUserDO user : tenant.getAssignedUsers()) { if (user != null) { list.add(user.getUsername()); } } String usernames = StringHelper.listToString(list, ", ", true); return usernames; }
@Override public int truncateTable(IEmgr<?> emgr, EntityMetadata entity) { EntityManager entityManager = emgr.getEntityManager(); List<TenantDO> tenants = entityManager .createQuery("select e from " + TenantDO.class.getName() + " e", TenantDO.class).getResultList(); for (TenantDO t : tenants) { Set<PFUserDO> assignedUser = t.getAssignedUsers(); if (assignedUser != null) { assignedUser.clear(); } entityManager.persist(t); entityManager.remove(t); } return tenants.size(); }
/** * @param tenant * @param userId * @return true if tenant is not null and not deleted and the given user is assigned to the given tenant. Otherwise * false. */ @Override public boolean isUserAssignedToTenant(final TenantDO tenant, final Integer userId) { if (tenant == null || tenant.isDeleted() || tenant.getAssignedUsers() == null) { return false; } return tenant .getAssignedUsers() .stream() .anyMatch(user -> user.getId().equals(userId)); }
protected void afterUpdate(final TenantDO tenant, final TenantDO dbTenant) final Set<PFUserDO> origAssignedUsers = dbTenant.getAssignedUsers(); final Set<PFUserDO> assignedUsers = tenant.getAssignedUsers(); final Collection<PFUserDO> assignedList = new ArrayList<PFUserDO>(); // List of new assigned users. final Collection<PFUserDO> unassignedList = new ArrayList<PFUserDO>(); // List of unassigned users. for (final PFUserDO user : tenant.getAssignedUsers()) { if (origAssignedUsers.contains(user) == false) { assignedList.add(user); for (final PFUserDO user : dbTenant.getAssignedUsers()) { if (assignedUsers.contains(user) == false) { unassignedList.add(user);
/** * Please note: Any existing assigned user in tenant object is ignored! * * @param tenant * @param assignedUsers Full list of all users which have to assigned to this tenant. * @return */ public void setAssignedUsers(final TenantDO tenant, final Collection<PFUserDO> assignedUsers) throws AccessException { final Set<PFUserDO> origAssignedUsers = tenant.getAssignedUsers(); if (origAssignedUsers != null) { final Iterator<PFUserDO> it = origAssignedUsers.iterator(); while (it.hasNext() == true) { final PFUserDO user = it.next(); if (assignedUsers.contains(user) == false) { it.remove(); } } } for (final PFUserDO user : assignedUsers) { if (origAssignedUsers == null || origAssignedUsers.contains(user) == false) { tenant.addUser(user); } } }
/** * @param userId * @return the tenants */ @Override public Collection<TenantDO> getTenantsOfUser(final Integer userId) { Collection<TenantDO> tenant2User = new ArrayList<>(); List<TenantDO> allTenants = tenantDao.internalLoadAll(); for (TenantDO tenant : allTenants) { Set<PFUserDO> assignedUsers = tenant.getAssignedUsers(); if (assignedUsers != null) { for (PFUserDO user : assignedUsers) { if (user.getId().equals(userId)) { tenant2User.add(tenant); } } } } return tenant2User; }
public boolean hasAssignedTenants(PFUserDO user) { for (TenantDO tenant : findAll()) { for (PFUserDO tenantUser : tenant.getAssignedUsers()) { if (tenantUser.getId().equals(user.getId())) { return true; } } } return false; }
/** * 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); } } }
set.add(tenant); final Collection<PFUserDO> assignedUsers = tenant.getAssignedUsers(); if (assignedUsers == null) { continue;
for (PFUserDO user : users) { log.info("Assign user with id: " + user.getId() + " to default tenant."); attachedDefaultTenant.getAssignedUsers().add(user); emgr.update(attachedDefaultTenant);
final TenantDO dbTenant = emgr.selectByPkAttached(TenantDO.class, tenant.getId()); final PFUserDO dbUser = emgr.selectByPkAttached(PFUserDO.class, user.getId()); Set<PFUserDO> assignedUsers = dbTenant.getAssignedUsers(); if (assignedUsers == null) { assignedUsers = new HashSet<PFUserDO>(); final TenantDO dbTenant = emgr.selectByPkAttached(TenantDO.class, tenant.getId()); final PFUserDO dbUser = emgr.selectByPkAttached(PFUserDO.class, user.getId()); final Set<PFUserDO> assignedUsers = dbTenant.getAssignedUsers(); if (assignedUsers != null && assignedUsers.contains(dbUser) == true) { log.info("Unassigning user '" + user.getUsername() + "' from tenant '" + dbTenant.getName() + "'.");
final Set<PFUserDO> assignedUsers = getData().getAssignedUsers(); final UsersProvider usersProvider = new UsersProvider(userDao); assignUsersListHelper = new MultiChoiceListHelper<PFUserDO>().setComparator(new UsersComparator()).setFullList(