docs: public boolean getIsEditable() {
  
          boolean result = false;
          try {
              CmsObject cms;
              if (m_cms.getRequestContext().getCurrentProject().isOnlineProject()) {
                  // we are in the online project, which means we must first switch to an offline project
                  // otherwise write permission checks will always return false
                  cms = OpenCms.initCmsObject(m_cms);
                  List<CmsProject> projects = OpenCms.getOrgUnitManager().getAllAccessibleProjects(
                      cms,
                      cms.getRequestContext().getOuFqn(),
                      false);
                  if ((projects != null) && (projects.size() > 0)) {
                      // there is at least one project available
                      for (CmsProject p : projects) {
                          // need to iterate because the online project will be part of the result list
                          if (!p.isOnlineProject()) {
                              cms.getRequestContext().setCurrentProject(p);
                              break;
                          }
                      }
                  }
              } else {
                  // not in the online project, so just use the current project
                  cms = m_cms;
              }
  
              result = cms.hasPermissions(
                  m_resource,
                  CmsPermissionSet.ACCESS_WRITE,
                  false,
                  CmsResourceFilter.ONLY_VISIBLE_NO_DELETED);
              if (result) {
                  // still need to check the lock status
                  CmsLock lock = cms.getLock(m_resource);
                  if (!lock.isLockableBy(cms.getRequestContext().getCurrentUser())) {
                      // resource is locked from a different user
                      result = false;
                  }
              }
          } catch (CmsException e) {
              // should not happen, in case it does just assume not editable
          }
          return result;
      }