Open reckyy opened 2 months ago
@komagata お疲れ様です。 こちら修正にあたり、確認したい事項が2つございますので、お手隙の際にご確認よろしくお願いいたします。
まず前提から述べます。
提出物がチェックされていないにも関わらず、学習ステータスのクリックだけでlearning-statusが変更できてしまっているのが原因。
提出物のshowアクションの前に、見れるかどうかのbefore_actionが実行されています。 https://github.com/fjordllc/bootcamp/blob/a3eb41bbc8032572c3dd08bd8bb658f75aceac86/app/controllers/products_controller.rb#L101-L105
このポリシーのshow?の下二つの条件について質問なのですが、 https://github.com/fjordllc/bootcamp/blob/a3eb41bbc8032572c3dd08bd8bb658f75aceac86/app/policies/product_policy.rb#L3-L20 https://github.com/fjordllc/bootcamp/blob/a3eb41bbc8032572c3dd08bd8bb658f75aceac86/app/models/practice.rb#L85-L91 https://github.com/fjordllc/bootcamp/blob/a3eb41bbc8032572c3dd08bd8bb658f75aceac86/app/models/product.rb#L109-L111
学習ステータスを変更できることにより、product.practice.completed?(user)
がtrueになってしまい回答が見れてしまっています。
「提出物はチェック済みだけど、プラクティスは修了になっていない」というシチュエーションはちょっと思い当たらないのでこの条件を削除したいのですが、問題ないでしょうか。
@reckyy
1 「提出物はチェック済みだけど、プラクティスは修了になっていない」というシチュエーションはちょっと思い当たらないのでこの条件を削除したいのですが、問題ないでしょうか。
提出物をチェックして、すぐチェックを外したら上記の状態になるように思いました。
2 「そもそも提出物がチェックされていないのにステータスを修了にできるのはおかしいということで、こちらの修正も同時に行うべきでしょうか。
上記を修正したいです〜。
@komagata 承知しました! 1に関しては据え置きで、2のみを修正するようにします〜。
概要
表題の通りです。 学習ステータスを「修了」にしたあと、提出物ページに行き他の人の提出物をクリックすると、普通に見れてしまいます。 (提出物ページでは、閲覧ユーザーが下部に表示されるので履歴に残るかつFBCには答えを見ようとする方はいないとは思うので、すぐすぐ問題というわけではないとは思いますが)
再現手順
期待される振る舞い
提出物が確認済みになっていない時は、修了に変更できない。
スクリーンショット