docs: private String generateInfoDetails(CmsObject cms, Locale locale) {
  
          StringBuffer infoHtml = new StringBuffer(128);
          if (CmsStringUtil.isNotEmptyOrWhitespaceOnly(m_user.getEmail())) {
              infoHtml.append(CmsStringUtil.escapeHtml(m_user.getEmail())).append(LINE_BREAK);
          }
          if (CmsStringUtil.isNotEmptyOrWhitespaceOnly(m_user.getOuFqn())) {
              infoHtml.append(CmsStringUtil.escapeHtml(m_user.getOuFqn())).append(LINE_BREAK);
          }
          for (CmsAccountInfo info : OpenCms.getWorkplaceManager().getAccountInfos()) {
              if (!info.getField().equals(Field.firstname)
                  && !info.getField().equals(Field.lastname)
                  && !Field.email.equals(info.getField())) {
                  String value = info.getValue(m_user);
                  if (CmsStringUtil.isNotEmptyOrWhitespaceOnly(value)) {
                      infoHtml.append(CmsStringUtil.escapeHtml(value)).append(LINE_BREAK);
                  }
              }
          }
          if (OpenCms.getSessionManager().getSessionInfos(m_user.getId()).size() > 0) {
              infoHtml.append(
                  Messages.get().getBundle(locale).key(
                      Messages.GUI_USER_INFO_ONLINE_SINCE_1,
                      DateFormat.getTimeInstance(DateFormat.DEFAULT, locale).format(
                          new Date(m_user.getLastlogin())))).append(LINE_BREAK);
          }
  
          return infoHtml.toString();
      }