docs: public boolean isShowUserAgreement() {
  
          if (!getSettings().isUserAgreementAccepted() && (getConfigurationContent() != null)) {
              CmsXmlContent content = getConfigurationContent();
              boolean enabled = false;
              try {
                  // first read the property that contains the information if the agreement is enabled at all
                  enabled = Boolean.valueOf(
                      getCms().readPropertyObject(
                          content.getFile(),
                          CmsPropertyDefinition.PROPERTY_LOGIN_FORM,
                          false).getValue()).booleanValue();
                  if (enabled) {
                      // user agreement is enabled, now check version and accepted count
                      if (content.hasLocale(getLocale())) {
                          if (getAcceptedVersion() < getRequiredVersion()) {
                              // new user agreement version that has to be shown
                              return true;
                          } else {
                              // check how often the user accepted the user agreement
                              String countStr = content.getStringValue(getCms(), NODE_AGREE_COUNT, getLocale());
                              int count = Integer.parseInt(countStr);
                              if ((count == -1) || (getAcceptedCount() < count)) {
                                  // user still has to accept the user agreement
                                  return true;
                              }
                          }
                      }
                  }
              } catch (Exception e) {
                  // error when trying to determine if user agreement should be shown
                  LOG.error(
                      Messages.get().getBundle().key(
                          Messages.LOG_USERAGREEMENT_SHOW_1,
                          getConfigurationContent().getFile().getRootPath()),
                      e);
              }
  
          }
          // store information that nothing has to be accepted in users session for better performance
          if (!getSettings().isUserAgreementAccepted()) {
              getSettings().setUserAgreementAccepted(true);
          }
          return false;
      }