第11回/Redmineインストール直後のデフォルトデータを改善する #30 参加者: かわばたさん、rbtさん、にしざき
まずはセキュリティに関わるものを優先して対応すべき
設定
「認証」タブ
認証が必要: はい に変更
「プロジェクト」タブ
デフォルトで新しいプロジェクトは公開にする: オフ に変更
テストがたくさん落ちた 548 failure, 33 error
200 OK を期待されているところが 302 Found (=redirect)
403 Forbidden を期待されているところが 401 Unauthroized
「デフォルトで新しいプロジェクトは公開にする: オフ」だけ対応すると、13 error まで減る
プロジェクトを作成してなにかするテストで、考えなくPublicで作成したことによる影響のようだ
test/unit/setup_assigned_to_role の @project = Project.generate! に is_public: true をつけたら 7 error まで減った
rails test test/integration/lib/redmine/menu_manager_test.rb:151
rails test test/unit/project_test.rb:1064
rails test test/unit/project_test.rb:1049
rails test test/unit/project_test.rb:1057
rails test test/functional/projects_controller_test.rb:690
rails test test/functional/projects_controller_test.rb:335
rails test test/functional/projects_controller_test.rb:1185
「認証が必要: はい に変更」はどうする?
議論が必要だと思うので、まずはチケットを作って議論してみたい
JPLが最近忙しいみたいなのでフィードバックがくるかどうかちょっと心配
redmine.orgの forum で議論する方向がいいのかも
ユーザに意識させるならいつがいいのか
db:create / db:migrate / load_default_data
setting.yaml を変更するのは既存ユーザへの影響も大きい?
いうても新規プロジェクトがどうなるか、だから心配しなくてもよいかも
本家 Redmine の issue をそれぞれ作成する必要がある
まずは、「デフォルトで新しいプロジェクトは公開にする: オフ に変更」から
第15回
参加者: matobaa, にしざき
前田さん曰く、「デフォルトで新しいプロジェクトは公開にする: オフ に変更」には反対
RedmineはOSSのプロジェクト管理ツールを標ぼうしているから
そうなの? JPLがどう思っているのかが重要なのでは。
アプローチ方法どうする?
setting.yaml を書き換える (pull/46でやってる方法)
load_default_data を書き換えれば取り込まれる可能性もあがるかもね
Rakeタスク load_default_data でオプションつけるとプライベート寄りの設定で構成されるようにするとか? それだとテストへの影響を回避できます。RAILS_ENV=production REDMINE_LANG=fr REDMINE_SETTING=private bin/rake redmine:load_default_data みたいな。
ここまでの残タスク:
やったこと
task/30ブランチと プルリク46は捨てて、task/30-2 ブランチとプルリク60で仕切りなおした
修正方針:
REDMINE_SETTING=private bin/rake db:load_default_data するために ENV['REDMINE_SETTING'] を取得して load(current_language, {REDMINE_SETTING:} で渡すように変更する
load_default_data してなかったときに admin を開いた画面で REDMINE_SETTING: private なチェックボックスをつくる
チェックボックスよみとって load() に渡すように修正する
load で受け取って # Setting.default_projects_public = 0
テストをかく
rails db:drop db:create db:migrate
実装完了
残作業
rake時の環境変数名 REDMINE_DEFAULT_PROJECTS_PUBLIC=private と、
admin画面の「デフォルトでプロジェクトを公開にする」(既定値はchecked)の意味が逆で、「チェックが入っていなければprivateとみなす」と実装している部分がちょっと気持ち悪い