EN JP CN

パーミッションポリシーの設定

パーミッションポリシーの設定

パーミッションポリシーを使用して、Code Reviewでのユーザーアクセスを制御できます。これらのポリシーは、以下を使用して実施できます。

  • [タグ] - リビジョンに適用します
  • [パス] - その下にあるすべてのパスに一致するソースファイル、任意パス、またはパス接頭辞を直接ポイントします。たとえば、/my/path/ にパーミッションポリシーを追加すると、このディレクトリにあるすべてのファイルは同じパーミッションを共有することになります。少なくとも 1 つのタグをパスに指定する必要があります。

重要:パーミッションポリシーを作成して編集するには、プロジェクトルート管理者でなければなりません。

[パーミッションのフィルター処理] フィールドを使用して、パーミッションのリストをユーザー、タグ、またはパスでフィルター処理できます。たとえば、Joe Smith を検索する場合、そのユーザーおよびユーザーがいるすべてのグループに適用されるすべての規則が表示されます。

[アクセス] フィールドでは、ソースファイルおよびタグ付きリビジョンへのアクセスを許可または拒否できます。[すべて許可] または [すべて拒否] を選択することにより、すべてのユーザーに対してアクセスを許可または拒否できます。[すべて許可] または [すべて拒否] を選択し、[アカウント] フィールドにユーザー名およびグループ名を追加することにより、特定ユーザーまたはグループのアクセスを許可または拒否できます。

  • アクセス規則をタグ付きリビジョンに適用するには、[タグを指定] ボックスを使用して、目的のタグ名を追加します。
  • アクセス規則をパスに適用するには、少なくとも 1 つのタグと共に [パスを指定] ボックスを使用して、パスの接頭辞または絶対パスを追加します。すべてのパスは接頭辞一致として適用されます。たとえば、/my/path は、接頭辞 '/my/path' で始まるすべてのパスに適用されます。

タグとパスが指定されると、パスの接頭辞は特定タグのパスのみと一致されます。たとえば、deny all tags:myTag paths:/a/b は、myTag というタグ付きでパス接頭辞 /a/b のあるリビジョンを除去します。これにより、特定されないパーミッションがオーバーライドされます。この場合、allow all tags:myTag paths:/a/bの特定度が高いため、deny all paths:/a/b をオーバーライドします。

注: LDAP 認証を使用している場合、Code Review はパーミッション規則のユーザー名のリストに正規のユーザー名を追加します。

衝突解決

同じパスまたはタグに 2 つ以上のパーミッションポリシーが付属している場合、衝突とみなされます。特定度の高いパーミッションが優先されます。衝突は次のように処理されます。

  • 基本パーミッションは、例外をすべて許可 または 例外をすべて却下 です。他のすべてのパーミッションは、基本よりも特定度が高く、基本をオーバーライドします。基本規則に基づいて、タグなしリビジョンが表示または非表示になります。
  • アカウント固有の規則が [すべてのユーザー] 規則より優先されます。
    • たとえば、allow 'userA' tags:'tag1 'は deny all tags:'tag1 ' より優先され、deny 'userA ' は allow all をオーバーライドします。
  • タグのみの規則が汎用規則より優先されます。
    • たとえば、allow 'userA' tags:'tag1 ' は、deny 'userA ' および deny all より優先されます。
  • 規則内でタグおよびパスが指定されている場合、その規則はタグのみの規則より優先されます。
    • たとえば、allow all tags:'tag1' paths:'/my/path ' は、deny all tags:'tag1 'より優先されます。
  • 特定度の高いパスは、特定度の低いパスより優先されます。
    • たとえば、allow all tags:'tag1' paths:'/my/path ' は、deny all tags:'tag1' paths:'/ 'より優先されます。

全員に全リソースへのアクセスを許可します:

allow all

全員に対して全リソースへのアクセスを拒否します:

deny all

全員に対して特定パス以外の '/mypath' の下にあるパスへのアクセスを拒否します:

allow all
deny all tags: 'mytag' paths: '/mypath'
allow all tags: 'mytag' paths: '/mypath/a','/mypath/b'

JSmith に対するアクセスを許可し、それ以外はすべてのリソースへのアクセスを拒否します:

deny all
allow 'JSmith'

JSmith について、'myTag' のタグが付いたリソース以外のすべてのリソースへのアクセスを許可します。他の全ユーザーの全リソースへのアクセスを拒否します:

deny all
allow 'JSmith'
deny 'JSmith' tags:'myTag'

JSmith について、'myTag' のタグが付いたリソース以外のすべてのリソースへのアクセスを許可しますが、リビジョンでは 'myTag' のタグが付いた '/my/path' にはアクセスを許可します。その他のすべてのユーザーには全リソースへのアクセスを拒否します:

deny all
allow 'JSmith'
deny 'JSmith' tags:'myTag'
allow 'Jsmith' tags: 'myTag' paths: '/my/path'

JSmith について、'myTag' のタグが付いたリビジョンへのすべてのアクセスは、指定されたパスを除き拒否されます:

allow all
deny 'JSmith' tags: 'myTag'
allow 'JSmith' tags: 'myTag' paths: '/my/path'

JSmith について、'/a' を除くすべてのアクセスが拒否され、リビジョンで 'myTag' のタグが付いた '/a' へのアクセスが拒否されます:

deny all
deny 'JSmith' tags: 'myTag' paths: '/a'
allow 'JSmith' tags: 'myTag', 'anotherTag' paths: '/a'