匿名ユーザーとログインユーザー向けのグループベースのきめ細かい権限

これらのコンポーネントを見ると、currentUser?.groups はそもそも信頼できません。なぜなら、これはユーザーに「表示される」グループのみを含み、権限に影響を与えるグループがここでシリアライズされていない可能性があるからです。

コアやプラグインでは、現在のユーザーシリアライザーで以下のような処理を行うことでこの問題を回避しています。

ただし、明らかにこれはテーマコンポーネントやテーマ、およびそれらの設定には利用できません。

うーん、確信が持てません。よく考えてみましょう。もし本当に everyone を意図していたのであれば、logged_in_usersanonymous_users の両方に変更する必要があります。これが OP で述べられた everyone の主な問題点でした。ある人はログインユーザーのみを意味すると解釈し、別の人はログインユーザー+匿名ユーザーを意味すると解釈し、状況に大きく依存していたのです。

セキュリティの観点からより安全だったため、私は「ログインユーザーのみ」という解釈を選びました。

いいえ、テーマコンポーネントやテーマ、およびそれらの設定がどのように影響を受けるかについて考えが及んでいませんでした。私は主にサイト設定に焦点を当てていました。このような問題は特に発見するのが非常に難しいでしょう。なぜなら、AUTO_GROUPS 定数さえも使用していないからです。

image

とにかく、これらの問題に対するいくつかの解決策を考え出します。それらが解決されるまで、この変更を Stable ブランチに移行することはありません。

「いいね!」 2