docs: protected AllowableActions collectAllowableActions(CmsObject cms, CmsResource file, CmsRelation relation) {
  
          try {
              Set<Action> aas = new LinkedHashSet<Action>();
              AllowableActionsImpl result = new AllowableActionsImpl();
  
              CmsLock lock = cms.getLock(file);
              CmsUser user = cms.getRequestContext().getCurrentUser();
              boolean canWrite = !cms.getRequestContext().getCurrentProject().isOnlineProject()
                  && (lock.isOwnedBy(user) || lock.isLockableBy(user))
                  && cms.hasPermissions(file, CmsPermissionSet.ACCESS_WRITE, false, CmsResourceFilter.DEFAULT);
              addAction(aas, Action.CAN_GET_PROPERTIES, true);
              addAction(aas, Action.CAN_DELETE_OBJECT, canWrite && !relation.getType().isDefinedInContent());
              result.setAllowableActions(aas);
              return result;
          } catch (CmsException e) {
              handleCmsException(e);
              return null;
          }
      }