@Transactional(readOnly = false, propagation = Propagation.REQUIRES_NEW, isolation = Isolation.REPEATABLE_READ) public void assignGroups(final PFUserDO user, final Set<GroupDO> groupsToAssign, final Set<GroupDO> groupsToUnassign) throws AccessException { assignGroups(user, groupsToAssign, groupsToUnassign, true); }
@Override public void select(final String property, final Object selectedValue) { if ("taskId".equals(property) == true) { form.task = taskDao.getById((Integer) selectedValue); } else if ("managerGroupId".equals(property) == true) { form.managerGroup = groupDao.getById((Integer) selectedValue); form.groupSelectPanelManager.getTextField().modelChanged(); } else if ("teamId".equals(property) == true) { form.team = groupDao.getById((Integer) selectedValue); form.groupSelectPanelTeam.getTextField().modelChanged(); } else { log.error("Property '" + property + "' not supported for selection."); } }
@Override public GroupDO getGroup(final Integer groupId) { return groupDao.getOrLoad(groupId); }
@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()); } }
@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; } });
private Integer createGroup(final String name, final String description) { final GroupDO group = new GroupDO().setName(name).setDescription(description); return (Integer) groupDao.internalSave(group); }
@Override protected List<GroupDO> getChoices(final String input) { final BaseSearchFilter filter = new BaseSearchFilter(); filter.setSearchFields("id", "name"); filter.setSearchString(input); final List<GroupDO> list = groupDao.getList(filter); return list; }
private Collection<GroupDO> getSortedGroups(final String groupIds) { if (StringUtils.isEmpty(groupIds) == true) { return null; } Collection<GroupDO> sortedGroups = new TreeSet<GroupDO>(groupsComparator); final int[] ids = StringHelper.splitToInts(groupIds, ",", false); for (final int id : ids) { final GroupDO group = groupDao.internalGetById(id); if (group != null) { sortedGroups.add(group); } else { log.warn("Group with id '" + id + "' not found in UserGroupCache. groupIds string was: " + groupIds); } } return sortedGroups; }
}); createHistoryEntry(user, unassignedGroups, assignedGroups); if (updateUserGroupCache) { getUserGroupCache().setExpired();
/** * Internal load of all tasks without checking any access. * * @return */ @SuppressWarnings("unchecked") @Transactional(readOnly = true, propagation = Propagation.SUPPORTS) List<GroupDO> loadAll() { final List<GroupDO> list = (List<GroupDO>) getHibernateTemplate().find("from GroupDO t join"); return list; }
private void createHistoryEntry(final PFUserDO user, Collection<GroupDO> unassignedList, Collection<GroupDO> assignedList) { if (unassignedList != null && unassignedList.size() == 0) { unassignedList = null; } if (assignedList != null && assignedList.size() == 0) { assignedList = null; } if (unassignedList == null && assignedList == null) { return; } createHistoryEntry(user, user.getId(), "assignedGroups", GroupDO.class, unassignedList, assignedList); }
final String groupname = validatable.getValue(); getData().setName(groupname); if (groupDao.doesGroupnameAlreadyExist(getData()) == true) { validatable.error(new ValidationError().addKey("fibu.kost.error.invalidKost"));
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); }
@Override public List<GroupDO> getList(final BaseSearchFilter filter) { final GroupFilter myFilter; if (filter instanceof GroupFilter) { myFilter = (GroupFilter) filter; } else { myFilter = new GroupFilter(filter); } final QueryFilter queryFilter = new QueryFilter(myFilter); if (Login.getInstance().hasExternalUsermanagementSystem() == true) { // Check hasExternalUsermngmntSystem because otherwise the filter is may-be preset for an user and the user can't change the filter // (because the fields aren't visible). if (myFilter.getLocalGroup() != null) { queryFilter.add(Restrictions.eq("localGroup", myFilter.getLocalGroup())); } } queryFilter.addOrder(Order.asc("name")); return getList(queryFilter); }
/** * Initializes the projekt (projektManagerGroup), so any LazyInitializationException are avoided. * * @param projekt Null safe. */ public void initializeProjektManagerGroup(final ProjektDO projekt) { if (projekt == null) { return; } // Needed because Hibernate Search rolls back because the project manager group is not loadable. Hibernate.initialize(projekt); final GroupDO projectManagerGroup = projekt.getProjektManagerGroup(); if (projectManagerGroup != null) { final GroupDO group = groupDao.internalGetById(projectManagerGroup.getId()); projekt.setProjektManagerGroup(group); //Hibernate.initialize(projectManagerGroup); // Does not work. } }
public GroupDO getByName(final String name) { if (name == null) { return null; } @SuppressWarnings("unchecked") final List<GroupDO> list = (List<GroupDO>) getHibernateTemplate().find("from GroupDO u where u.name = ?", name); if (CollectionUtils.isEmpty(list) == true) { return null; } return list.get(0); } }
/** * 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); } } }
log.info("Start assign groups"); long start = System.currentTimeMillis(); groupDao.assignGroups(getData(), form.assignGroupsListHelper.getItemsToAssign(), form.assignGroupsListHelper.getItemsToUnassign(), false); long end = System.currentTimeMillis();
/** * @param access * @param groupId If null, then group will be set to null; * @see BaseDao#getOrLoad(Integer) */ public void setGroup(final GroupTaskAccessDO access, final Integer groupId) { final GroupDO group = groupDao.getOrLoad(groupId); access.setGroup(group); }