docs: private List<CmsSelectWidgetOption> getSites() {
  
          List<CmsSelectWidgetOption> sites = new ArrayList<CmsSelectWidgetOption>();
          List<CmsSite> sitesList = OpenCms.getSiteManager().getAvailableSites(getCms(), true, false, getParamOufqn());
  
          String defSite = null;
          if ((m_user != null) && CmsStringUtil.isNotEmptyOrWhitespaceOnly(m_user.getName())) {
              defSite = new CmsUserSettings(m_user).getStartSite();
          }
          if (defSite == null) {
              defSite = getCms().getRequestContext().getSiteRoot();
          }
          if (!defSite.endsWith("/")) {
              defSite += "/";
          }
  
          Iterator<CmsSite> itSites = sitesList.iterator();
          while (itSites.hasNext()) {
              CmsSite site = itSites.next();
              String siteRoot = site.getSiteRoot();
              if (CmsStringUtil.isEmptyOrWhitespaceOnly(siteRoot)) {
                  if (sitesList.size() > 1) {
                      if (CmsStringUtil.isNotEmptyOrWhitespaceOnly(m_user.getName())) {
                          if (!OpenCms.getRoleManager().hasRole(getCms(), m_user.getName(), CmsRole.VFS_MANAGER)) {
                              // skip the root site if not accessible
                              continue;
                          }
                      }
                  }
              }
              if (!siteRoot.endsWith("/")) {
                  siteRoot += "/";
              }
              boolean selected = defSite.equals(siteRoot);
              sites.add(new CmsSelectWidgetOption(siteRoot, selected, substituteSiteTitle(site.getTitle()), null));
          }
          return sites;
      }