OpenRefine - экземпляр только для чтения - PullRequest
0 голосов
/ 17 декабря 2018

Я хочу сделать экземпляр OpenRefine доступным для исследования данных, использовать его фильтрацию, фасетирование, кластеризацию и другие функции.Но пользователи (это будет доступно в сети) не должны иметь возможности что-либо редактировать.

Некоторые идеи, подсказки или подсказки, как их реализовать:

  • Сделать локальную папку проекта доступной только для чтения.

  • Сделать его непостоянным (т. Е. Пользователь вносит изменения, а OpenRefine притворяется, но в следующий раз, когда они его загрузят, все изменения пропадут).Это на самом деле происходит в докере, и после некоторого разочарования мы узнаем, как запустить образ докера с постоянными томами.Но эта «перезагрузка» данных срабатывает только тогда, когда вы выключаете экземпляр и перезапускаете его.Как мы можем сделать его непостоянным в течение, скажем, сеанса браузера?

  • Внутри кода, если есть какая-либо переменная-флаг, основанная на том, какие решения по редактированию приняты, тогда с небольшиммы можем переопределить это?На этом маршруте желтое предупреждающее сообщение, которое обычно появляется сверху, гласящее, что многие отредактированные ячейки, вероятно, будет что-то вроде «Ошибка: редактирование не удалось!»Мы могли бы превратить его в нечто более подходящее, например «Извините, редактирование в этом случае отключено».

1 Ответ

0 голосов
/ 17 декабря 2018

Я не думаю, что есть что-то встроенное, чтобы отключить редактирование.Единственное, что вы можете сделать, это отключить в бэкэнде все команды API, которые используются для внесения изменений, но нет гарантии, что пользовательский интерфейс изящно отклонит действия, когда пользователь их инициирует.

Чтобы отключить APIкоманды, откройте файл ./main/webapp/modules/core/MOD-INF/controller.js.Затем вам нужно будет определить, какие команды отключить.Например, вы не хотите, чтобы пользователи удаляли проекты, поэтому вы должны удалить

RS.registerCommand(module, "delete-project", new Packages.com.google.refine.commands.project.DeleteProjectCommand());

, что сделает невозможным удаление проекта из пользовательского интерфейса.

Вы также должны отключить командыиз расширений (например, в extensions/wikidata/module/MOD-INF/controller.js для расширения Wikidata).

Я создал соответствующий запрос расширения здесь: https://github.com/OpenRefine/OpenRefine/issues/1910

...