При редактировании членов группы через Java, запускаемых с Xpage, изменения игнорируются при доступе к базе данных до тех пор, пока группа не будет сохранена вручную в Domino Directory. Группа находится в ассистентском направлении
Для xpage-приложения я хочу, чтобы poweruser мог изменять группы через xpage:
При сохранении xpages получает соответствующий документ из БД каталога domino, записывает список членов в элемент «Members» и сохраняет документ (см. Код ниже).
Группа используется для предоставления авторского доступа к БД. При попытке доступа к БД с вновь добавленным пользователем доступ запрещен, пока я не открою документ группы вручную через Notes-Client, переключусь в режим редактирования и сохраню его (без изменения каких-либо данных). То же самое при использовании только что удаленного пользователя, он все равно получит доступ. После сохранения группы вручную все работает сразу.
Попробовал его с новыми группами (создал документ, установил все элементы и сохранил его) и всеми существующими (получил существующую, рабочую группу и изменил ее), без разницы
//Group is a very basic bean that holds the data changed by the user on the
//xpage. no logic, just getters/setters
public void save(Group group) {
if (group.getID().equals("")) {
//new Group
doc = pnab.createDocument();
doc.replaceItemValue("Form", "Group");
doc.replaceItemValue("Type", "Group");
doc.replaceItemValue("Grouptype", "2");
doc.replaceItemValue("Grouptitle", "2");
doc.replaceItemValue("ListCategory", con.getName());
doc.replaceItemValue("$ConflictAction", "1");
doc.replaceItemValue("$Group_Main", "0");
doc.replaceItemValue("DocumentAccess", "[Groupmodifier]");
doc.getFirstItem("DocumentAccess").setAuthors(true);
replaceValues(group, doc);
doc.save();
group.setID(doc.getUniversalID());
} else {
//existing group
doc = pnab.getDocumentByUNID(group.getID());
replaceValues(group, doc);
doc.save();
}
}
private void replaceValues(Group group, Document doc) throws NotesException {
doc.replaceItemValue("comment", group.getComment());
doc.replaceItemValue("ListName", group.getNotesName());
Vector<String> members=new Vector<String>(group.getMembers());
Collections.sort(members, new StringComparator(true)); // sorts the memberlist alphabetical, ignores case
doc.replaceItemValue("Members", members);
}
Я предполагаю, что должны быть сделаны некоторые обновления / очищены кэши и т. Д. Любой совет, что делать / где искать?
Уже исследовал групповую форму из Dominodirectoy-шаблона, ничего особенного там нет.
Также проверил Notes-GroupManager LS-Libary с openNTF.org, тоже ничего особенного. Это может быть специфическая проблема Java