Contentfulでユーザーに複数ロールを付与する場合の優先順位

Contentfulでユーザーに複数ロールを付与する場合の優先順位

Clock Icon2024.07.15

CMSのContentfulでは、ユーザーに細かくロールを付与することで、ダッシュボードにおける各種操作や、APIへのリクエストにおける権限を制御することができます。

1ユーザーには複数のロールを付与することができますが、各ロール間での同一アクションに対する許可/拒否が矛盾/重複する場合、どのような優先順位でそれらが適用されるかを調べてみました。

先に結論。

明示的な「拒否」 > 明示的な「許可」 > 暗黙的な「拒否」

という優先度です。

詳しく。

まず前提として、Contentfulのロール(カスタムロール含む)では 明示的に許可されていないアクションは全て拒否 されます。

あるロールに Action: [記事の編集] を許可したい場合、それらを明示的に許可する必要があります。

一方で、特定のアクションに対して明示的に「拒否」を設定することもできます。通常これは過剰な設定になりますが、複数ロールを付与したい場合は有効です。

■ケース1. いずれかのロールで明示的に「拒否」されている

例えば Action: [記事の編集] に対して下記2つのロールがあるとする

  • ロールA: 「許可」
  • ロールB: 「拒否」

→ A, B を同一ユーザーに付与した場合、[編集]への「拒否」が優先される

■ケース2. いずれかのロールで明示的に「許可」されている

  • ロールA: 「許可」
  • ロールB: 「編集に明示的な許可を付与していない」が「拒否もしていない」

→ この場合 [編集] は「許可」される(= 明示的な「許可」は暗黙的な「拒否」に優先する)

参考

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.