getDirectoryUsersByGroup

@SuppressWarnings("unchecked")
  public static HashSet<String> getDirectoryUsersByGroup(String groupName) {
    HashSet<String> persons = new HashSet<String>();
    try {
 
      Directory dir = NotesContext.getCurrent().getCurrentSession().getDirectory();
      Vector<String> items = new Vector<String>();
      items.add("Members");
      Vector<String> lookupvalues = new Vector<String>();
      lookupvalues.add(groupName);
      DirectoryNavigator dirnav = dir.lookupNames("Groups", lookupvalues,items, false);
      if (dirnav.isMatchLocated()) {
        Vector members = dirnav.getFirstItemValue();
        for (Object item : members) {
          if (!Utils.isGroup(item.toString())) {
            persons.add(item.toString());
          } else {
            persons.addAll(Utils.getDirectoryUsersByGroup(item.toString()));
          }
        }
      }
    } catch (Exception e) {
      Utils._logger.log(Level.SEVERE, "Error getting Users:" + e);
    }
    return persons;
  }
 
  public static boolean isGroup(String name) {
    boolean retval = false;
    try {
      Directory dir = NotesContext.getCurrent().getCurrentSession().getDirectory();
      Vector<String> items = new Vector<String>();
      items.add("Form");
      Vector<String> lookupvalues = new Vector<String>();
      lookupvalues.add(name);
      DirectoryNavigator dirnav = dir.lookupNames("Groups",lookupvalues,items,false);
      if (dirnav.isMatchLocated()) {
        if ("[Group]".equals(dirnav.getFirstItemValue().toString())) {
          retval = true;
        }
      }
    } catch (Exception e) {
      Utils._logger.log(Level.SEVERE, "Error getting group:" + e);
    }
    return retval;
  }
}





このコードは、現在の Domino サーバー上のアドレス帳を検索し、複数ユーザーとグループの名前に文字列に取り込んだのハッシュセットを返します。グループの階層がいくら深くても全てのユーザーのリストを生成します。

Java
katoman
July 13, 2015 11:09 AM
Rating
0





No comments yetLogin first to comment...