docs: protected CmsObject initCmsObject(CmsObject adminCms, CmsContextInfo contextInfo)
      throws CmsRoleViolationException, CmsException {
  
          String userName = contextInfo.getUserName();
  
          if ((adminCms == null) || !m_roleManager.hasRole(adminCms, CmsRole.ROOT_ADMIN)) {
              if (!userName.endsWith(getDefaultUsers().getUserGuest())
                  && !userName.endsWith(getDefaultUsers().getUserExport())) {
  
                  // if no admin object is provided, only "Guest" or "Export" user can be generated
                  CmsMessageContainer message = Messages.get().container(
                      Messages.ERR_INVALID_INIT_USER_2,
                      userName,
                      ((adminCms != null) ? (adminCms.getRequestContext().getCurrentUser().getName()) : ""));
                  if (LOG.isWarnEnabled()) {
                      LOG.warn(message.key());
                  }
                  throw new CmsRoleViolationException(message);
              }
          }
  
          return initCmsObject(contextInfo);
      }