} else {
// can only assign to bundle groups for which he has the necessary permissions
RoleCriteria criteria = new RoleCriteria();
criteria.addFilterSubjectId(assigningSubject.getId());
criteria.addFilterPermissions(permFilter);
criteria.fetchBundleGroups(true);
List<Role> roles = LookupUtil.getRoleManager().findRolesByCriteria(subjectManager.getOverlord(), criteria);
bundleGroups = new ArrayList<BundleGroup>();
for (Role role : roles) {
for (BundleGroup bundleGroup : role.getBundleGroups()) {
if (!bundleGroups.contains(bundleGroup)) {