public String buildBusinessCategory(final GroupDO group) { return ID_PREFIX + group.getId(); }
final Set<PFUserDO> origAssignedUsers = group.getAssignedUsers(); if (origAssignedUsers != null) { final Iterator<PFUserDO> it = origAssignedUsers.iterator(); + user.getId() + "' not found. Could not add this unknown user to new group: " + group.getName()); group.addUser(dbUser);
public GroupDO convert(final LdapGroup ldapGroup) { final GroupDO group = new GroupDO(); group.setId(getId(ldapGroup)); group.setName(ldapGroup.getCommonName()); group.setOrganization(ldapGroup.getOrganization()); group.setDescription(ldapGroup.getDescription()); if (isPosixAccountValuesEmpty(ldapGroup) == false) { group.setLdapValues(getLdapValuesAsXml(ldapGroup)); } return group; }
private void addGroup(final ProjectForgeGroup projectForgeGroup, final String description, final TenantDO tenant, final Set<PFUserDO> users) { final GroupDO group = new GroupDO(); group.setName(projectForgeGroup.toString()); group.setDescription(description); if (users != null) { group.setAssignedUsers(users); } group.setTenant(tenant); // group.setNestedGroupsAllowed(false); group.setLocalGroup(true); // Do not synchronize group with external user management system by default. groupDao.internalSave(group); }
private GroupDO createGroup(final String name, final String... usernames) { final GroupDO group = new GroupDO(); group.setName(name); if (usernames != null) { for (final String username : usernames) { final PFUserDO user = getRequiredUser(username); if (user == null) { return null; } group.addUser(user); } } return group; }
public LdapGroup convert(final GroupDO pfGroup, final String baseDN, final Map<Integer, LdapUser> ldapUserMap) if (pfGroup.getId() != null) { ldapGroup.setBusinessCategory(buildBusinessCategory(pfGroup)); ldapGroup.setCommonName(pfGroup.getName()); ldapGroup.setOrganization(pfGroup.getOrganization()); ldapGroup.setDescription(pfGroup.getDescription()); if (pfGroup.getAssignedUsers() != null) { for (final PFUserDO user : pfGroup.getAssignedUsers()) { if (user.isDeactivated() == true || user.isDeleted() == true) { + user.getId() + "' not found in given ldapUserMap. User will be ignored in group '" + pfGroup.getName() + "'."); setLdapValues(ldapGroup, pfGroup.getLdapValues()); return ldapGroup;
if (groupsToAssign != null) { for (final GroupDO group : groupsToAssign) { final GroupDO dbGroup = emgr.selectByPkAttached(GroupDO.class, group.getId()); HistoryBaseDaoAdapter.wrappHistoryUpdate(dbGroup, () -> { Set<PFUserDO> assignedUsers = dbGroup.getAssignedUsers(); if (assignedUsers == null) { assignedUsers = new HashSet<>(); dbGroup.setAssignedUsers(assignedUsers); log.info("Assigning user '" + dbUser.getUsername() + "' to group '" + dbGroup.getName() + "'."); assignedUsers.add(dbUser); assignedGroups.add(dbGroup); dbGroup.setLastUpdate(); // Needed, otherwise GroupDO is not detected for hibernate history! } else { log.info("User '" + dbUser.getUsername() + "' already assigned to group '" + dbGroup.getName() + "'."); final GroupDO dbGroup = emgr.selectByPkAttached(GroupDO.class, group.getId()); HistoryBaseDaoAdapter.wrappHistoryUpdate(dbGroup, () -> { final Set<PFUserDO> assignedUsers = dbGroup.getAssignedUsers(); if (assignedUsers != null && assignedUsers.contains(dbUser) == true) { log.info("Unassigning user '" + dbUser.getUsername() + "' from group '" + dbGroup.getName() + "'."); assignedUsers.remove(dbUser); unassignedGroups.add(dbGroup); dbGroup.setLastUpdate(); // Needed, otherwise GroupDO is not detected for hibernate history! } else { log.info("User '" + dbUser.getUsername() + "' is not assigned to group '" + dbGroup.getName() + "' (can't unassign).");
@Override protected String formatValue(final GroupDO group) { if (group == null) { return ""; } return group.getName(); }
@Override public Object doInTransaction(final TransactionStatus status) { logon(TEST_ADMIN_USER); GroupDO group = new GroupDO(); group.setName("testgroup"); final Set<PFUserDO> assignedUsers = new HashSet<PFUserDO>(); group.setAssignedUsers(assignedUsers); assignedUsers.add(getUser(TEST_USER)); final Serializable id = groupDao.save(group); group = groupDao.getById(id); assertEquals("testgroup", group.getName()); assertEquals(1, group.getAssignedUsers().size()); assertTrue(group.getAssignedUsers().contains(getUser(TEST_USER))); final PFUserDO user = getUser(TEST_USER2); assertNotNull(user); group.getAssignedUsers().add(user); groupDao.update(group); group = groupDao.getById(id); assertEquals(2, group.getAssignedUsers().size()); assertTrue(group.getAssignedUsers().contains(getUser(TEST_USER))); assertTrue(group.getAssignedUsers().contains(user)); return null; } });
@Override public String toString() { final ToStringBuilder builder = new ToStringBuilder(this); builder.append("id", getId()); builder.append("name", getName()); builder.append("organization", getOrganization()); builder.append("description", getDescription()); if (getSafeAssignedUsers() != null) { final StringBuilder sb = new StringBuilder(); boolean first = true; for (final PFUserDO user : this.assignedUsers) { if (first == true) first = false; else sb.append(", "); sb.append(user.getDisplayUsername()); } builder.append("assignedUsers", sb.toString()); } else { builder.append("assignedUsers", "LazyCollection"); } return builder.toString(); }
/** * Does a group with the given name already exists? Works also for existing users (if group name was modified). * * @param username * @return */ @SuppressWarnings("unchecked") public boolean doesGroupnameAlreadyExist(final GroupDO group) { Validate.notNull(group); List<GroupDO> list = null; if (group.getId() == null) { // New group list = (List<GroupDO>) getHibernateTemplate().find("from GroupDO g where g.name = ?", group.getName()); } else { // group already exists. Check maybe changed name: list = (List<GroupDO>) getHibernateTemplate().find("from GroupDO g where g.name = ? and pk <> ?", new Object[] { group.getName(), group.getId() }); } if (CollectionUtils.isNotEmpty(list) == true) { return true; } return false; }
gMap.put(group.getId(), group); if (group.getAssignedUsers() != null) { for (final PFUserDO user : group.getAssignedUsers()) { if (user != null) { final Set<Integer> groupIdSet = ensureAndGetUserGroupIdMap(ugIdMap, user.getId()); groupIdSet.add(group.getId()); if (ProjectForgeGroup.ADMIN_GROUP.equals(group.getName()) == true) { log.debug("Adding user '" + user.getUsername() + "' as administrator."); nAdminUsers.add(user.getId()); } else if (ProjectForgeGroup.FINANCE_GROUP.equals(group.getName()) == true) { log.debug("Adding user '" + user.getUsername() + "' for finance."); nFinanceUser.add(user.getId()); } else if (ProjectForgeGroup.CONTROLLING_GROUP.equals(group.getName()) == true) { log.debug("Adding user '" + user.getUsername() + "' for controlling."); nControllingUsers.add(user.getId()); } else if (ProjectForgeGroup.PROJECT_MANAGER.equals(group.getName()) == true) { log.debug("Adding user '" + user.getUsername() + "' as project manager."); nProjectManagers.add(user.getId()); } else if (ProjectForgeGroup.PROJECT_ASSISTANT.equals(group.getName()) == true) { log.debug("Adding user '" + user.getUsername() + "' as project assistant."); nProjectAssistants.add(user.getId()); } else if (ProjectForgeGroup.MARKETING_GROUP.equals(group.getName()) == true) { log.debug("Adding user '" + user.getUsername() + "' as marketing user."); nMarketingUsers.add(user.getId()); } else if (ProjectForgeGroup.ORGA_TEAM.equals(group.getName()) == true) { log.debug("Adding user '" + user.getUsername() + "' as orga user."); nOrgaUsers.add(user.getId()); } else if (ProjectForgeGroup.HR_GROUP.equals(group.getName()) == true) { log.debug("Adding user '" + user.getUsername() + "' as hr user.");
GroupDO group1 = new GroupDO(); group1.setName("testusergroupcache1"); Set<PFUserDO> assignedUsers = new HashSet<PFUserDO>(); group1.setAssignedUsers(assignedUsers); assignedUsers.add(getUser(TEST_USER)); Serializable id = groupDao.save(group1); group1 = groupDao.getById(id); GroupDO group2 = new GroupDO(); group2.setName("testusergroupcache2"); assignedUsers = new HashSet<PFUserDO>(); group2.setAssignedUsers(assignedUsers); assignedUsers.add(getUser(TEST_ADMIN_USER)); id = groupDao.save(group2); assertFalse(userGroupCache.isUserMemberOfAtLeastOneGroup(getUser(TEST_ADMIN_USER).getId(), group1.getId())); assertTrue(userGroupCache.isUserMemberOfAtLeastOneGroup(getUser(TEST_ADMIN_USER).getId(), group2.getId())); assertTrue( userGroupCache.isUserMemberOfAtLeastOneGroup(getUser(TEST_ADMIN_USER).getId(), group1.getId(), group2.getId())); assertTrue(userGroupCache.isUserMemberOfAtLeastOneGroup(getUser(TEST_ADMIN_USER).getId(), null, group1.getId(), group2.getId())); assertTrue(userGroupCache.isUserMemberOfAtLeastOneGroup(getUser(TEST_ADMIN_USER).getId(), null, group1.getId(), null, group2.getId(), null)); assertTrue( userGroupCache.isUserMemberOfAtLeastOneGroup(getUser(TEST_ADMIN_USER).getId(), group2.getId(), group1.getId()));
@SuppressWarnings({ "unchecked", "rawtypes" }) @Test public void test3CheckUnmodifiableGroupNames() { GroupDO adminGroup = getGroup(ProjectForgeGroup.ADMIN_GROUP.getName()); final Integer id = adminGroup.getId(); adminGroup.setName("Changed admin group"); groupDao.internalSave(adminGroup); adminGroup = groupDao.internalGetById(id); assertEquals("Group's name shouldn't be allowed to change.", ProjectForgeGroup.ADMIN_GROUP.getName(), adminGroup.getName()); } }
GroupDO hrGroup = new GroupDO(); hrGroup.setName("PF_HR"); hrGroup.setDescription("Users for having full access to the companies hr."); hrGroup.setCreated(); hrGroup.setTenant(applicationContext.getBean(TenantService.class).getDefaultTenant());
if (ldapGroup == null) { updatedLdapGroup.setOrganizationalUnit(groupBase); if (group.isDeleted() == false && group.isLocalGroup() == false) { setMembers(updatedLdapGroup, group.getAssignedUsers(), ldapUserMap); ldapGroupDao.create(ctx, groupBase, updatedLdapGroup); created++; if (group.isDeleted() == true || group.isLocalGroup() == true) { if (modified == true) { updatedLdapGroup.setObjectClasses(ldapGroup.getObjectClasses()); setMembers(updatedLdapGroup, group.getAssignedUsers(), ldapUserMap); ldapGroupDao.update(ctx, groupBase, updatedLdapGroup); updated++; log.error("Error while proceeding group '" + group.getName() + "'. Continuing with next group.", ex); error++;
private Integer createGroup(final String name, final String description) { final GroupDO group = new GroupDO().setName(name).setDescription(description); return (Integer) groupDao.internalSave(group); }
/** * Creates for every user an history entry if the user is part of this new group. * * @param group * @see org.projectforge.framework.persistence.api.BaseDao#afterSave(org.projectforge.core.ExtendedBaseDO) */ @Override public void afterSave(final GroupDO group) { final Collection<GroupDO> groupList = new ArrayList<GroupDO>(); groupList.add(group); if (group.getAssignedUsers() != null) { // Create history entry of PFUserDO for all assigned users: for (final PFUserDO user : group.getAssignedUsers()) { createHistoryEntry(user, null, groupList); } } }