Я работаю над Приложением, в котором мне нужно предоставить Список участников, для которых Текущий Пользователь имеет право делегирования доступа к почте, Календарю, Todo.
Здесь я ограничен в том, чтобы касаться ACL клиента, только Клиент может добавлять пользователей делегирования доступа из своего почтового ящика следующими способами.
Из почтового ящика-> Подробнее ...
Перейдите в «Настройки»> «Делегирование».
Нажмите Добавить человека или группу.
Укажите, кто должен иметь доступ.
Выберите, какой объем вашего почтового файла вы хотите, чтобы делегаты имели доступ к
Выберите задачи, которые должен выполнять делегат.
Теперь у меня есть Value Picker, где я пытаюсь получить всех пользователей из "names.nsf", а затем получить имя файла "mail.nsf", выполняя идентификацию каждого пользователя.
Но при попытке пойти дальше, чтобы получить доступ к Почтовой базе данных пользователя, которого нет в ACL, но есть внутри Делегирования доступа. Выдает ошибку, которая не может получить доступ к Db почты этого пользователя,
Ниже приведен код:
try{
var allowed_by:java.util.Vector = new java.util.Vector();
var db = session.getCurrentDatabase();
var server_name = db.getServer();
var name_db:NotesDatabase = session.getDatabase(server_name,"names.nsf",false);
var name_v:NotesView = name_db.getView("($VIMPeople)");
var all_view_entries:NotesViewEntryCollection = name_v.getAllEntries();
var loggedInUser = @Name('[CANONICALIZE]',@UserName());
var entry:NotesViewEntry = all_view_entries.getFirstEntry();
while (entry != null)
{
var person_doc:NotesDocument = entry.getDocument();
var mail_db_info = person_doc.getItemValueString("mailFile");
var maildb:NotesDatabase = session.getDatabase(server_name, mail_db_info, false)
if(maildb.isCurrentAccessPublicReader()){
var profile_doc = maildb.getProfileDocument("calendarprofile","");
var ReadCalendarItem:NotesItem = profile_doc.Getfirstitem("ReadCalendar");
allowed_by.add(maildb.getFileName());
}else{
allowed_by.add("No Access");
}
var tmpentry = all_view_entries.getNextEntry();
entry.recycle();
entry = tmpentry;
}
return allowed_by;
}catch(err){
return err+"";
}
В приведенном выше коде я пытаюсь распечатать только имя почтового файла для тестирования, но это невозможно, поскольку текущий пользователь не указан во всех почтовых БД пользователя,
Но в каком-то пользовательском списке делегирования доступа к почте присутствует текущий пользователь.
Фактическая проблема с примером:
Пользователь A зарегистрирован
Пользователь B имеет пользователя A в своем делегировании доступа, но не в списке контроля доступа B почтовой БД.
Поэтому, когда A входит в систему и пытается получить пользователя B в списке средства выбора значений, к которому он / она имеет делегированный доступ (не в ACL), каков будет путь к добиться этого в списке?
Выше код преобразуется из скрипта Lotus в SSJS.
Ссылка-ссылка введите описание ссылки здесь
Было бы очень полезно, как знание, узнать вышеизложенное понятие о том, как оно работает, и теперь, как мне выполнить это требование.