code: private List<CmsUser> getUsers() {
  
          if (m_users == null) {
              m_users = new ArrayList<CmsUser>();
              List<CmsUser> manageableUsers = new ArrayList<CmsUser>();
              try {
                  manageableUsers = OpenCms.getRoleManager().getManageableUsers(getCms(), "", true);
              } catch (CmsException e) {
                  if (LOG.isErrorEnabled()) {
                      LOG.error(e.getLocalizedMessage(), e);
                  }
              }
              Iterator<String> itGroups = getGroups().iterator();
              while (itGroups.hasNext()) {
                  String groupName = itGroups.next();
                  try {
                      Iterator<CmsUser> itUsers = getCms().getUsersOfGroup(groupName, true).iterator();
                      while (itUsers.hasNext()) {
                          CmsUser user = itUsers.next();
                          if (OpenCms.getSessionManager().getSessionInfos(user.getId()).isEmpty()) {
                              continue;
                          }
                          if (!manageableUsers.contains(user)) {
                              continue;
                          }
                          m_users.add(user);
                      }
                  } catch (CmsException e) {
                      // should never happen
                  }
              }
          }
          return m_users;
      }
docs: Returns a list of all members of the selected groups.<p>
  
  @return a list of user objects