public static boolean isWriteAccessAllowed(@NotNull VirtualFile file, @NotNull Project project) {
    if (LightEdit.owns(project)) return true;
    if (isAllAccessAllowed()) return true;
    if (file.isDirectory()) return true;

    if (!(file.getFileSystem() instanceof LocalFileSystem)) return true; // do not block e.g., HttpFileSystem, LightFileSystem etc.
    if (file.getFileSystem() instanceof TempFileSystemMarker) return true;

    Application application = getApp();
    boolean unitTestMode = application.isUnitTestMode();

    if (!unitTestMode || HONOUR_RECENT_FILES_IN_TESTS.get(application) == Boolean.TRUE) {
      if (IdeUiService.getInstance().isFileRecentlyChanged(project, file)) {
        return true;
      }
    }

    if (!unitTestMode) {
      if (FileUtil.isAncestor(new File(FileUtil.getTempDirectory()), VfsUtilCore.virtualToIoFile(file), true)) {
        return true;
      }
    }

    VirtualFile each = file;
    while (each != null) {
      if (ACCESS_ALLOWED.getValue(each).get() > 0) return true;
      each = each.getParent();
    }

    return isProjectFile(file, project);
  }
public static boolean isWriteAccessAllowed(@NotNull VirtualFile file, @NotNull Project project)