メニュー

ページのパーミッション

[!訳注]
このページの解説も、画像がリンク切れしており、内容も アカウント > パーミッション に類似しています。内容的には、アカウント画面のパーミッションの設定と、各ページ編集画面のセキュリティタブにある、Page Permissions のセクションにおける設定方法を解説していると思われますが、ここで解説されている内容がよくわからず、実際に試してはいません。

// リンク切れ画像です
![Pages Permissions](page-permissions.png?width=2030&classes=shadow)

ページの ユーザー / グループ パーミッションは:

オプション説明
Configurationadmin.configuration管理パネルの Congiguration エリアへのアクセス権限をユーザーに与える
    Pages Configurationadmin.configuration.pages管理パネルの Pages エリア内にある Pages Configuration へのアクセス権限をユーザーに与える
Pagesadmin.pages管理パネルの Pages エリアへの完全なアクセス権限をユーザーに与える
    Createadmin.pages.createページを 作成 するアクセス権限をユーザーに与える
    Readadmin.pages.readページを 読み込み するアクセス権限をユーザーに与える
    Updateadmin.pages.updateページを 更新 するアクセス権限をユーザーに与える
    Deleteadmin.pages.deleteページを 削除 するアクセス権限をユーザーに与える
    Listadmin.pages.list管理パネルの Pages エリアへのアクセス権限をユーザーに与える

[!Warning]
Grav 内のすべてのアクションは、ひとつのパーミッションタイプに対してチェックされます。管理パネルで、listing もしくは reading 権限をユーザーに与えない場合でも、ユーザーが create, update, そして delete 権限を持っている場合、そのユーザーはそれらのアクションを行えます。つまり、このユーザーは、管理パネル内の Pages 画面が表示されないとしても、ページ編集画面に直接アクセスし、これらのアクションを実行することが可能です。

[!Tip]
Grav 1.7 より、個々のページとその子ページに対する CRUD アクセスを、そのページ自体から直接制限できるようになりました。

パーミッションでの妥当な値は:

オプション説明
Allowedtrue同じレベルに Denied パーミッションがひとつも無ければ、 許可 する
Deniedfalse不許可 にする。ユーザーに AllowedDenied があったら、Denied が勝ちます
Not setnull影響を与えず、もし他のルールが適用されなければ、 Denied になる

ユーザーアカウントに対して特に設定されたパーミッションは、グループパーミッションより優先されます。
ユーザーアカウントにパーミッションが設定されていない場合、そのユーザーが属するすべてのユーザーグループに対してアクセスチェックされます。
もしアクションを Denied するユーザーグループがひとつでもあれば、そのアクションに対してパーミッションは許可されません。
一方、すべてのグループで Allowed だったら、そのアクションは許可されます。
いずれのグループにもパーミッションが設定されていなければ、 Super User パーミッションは全体に対して Allowed になり、そうでなければ Denied が適用されます。

ユーザーアカウントとユーザーグループに設定されたパーミッションは、そのページを管理するデフォルトのパーミッションとなります。
これらのルールすべては、各ページの セキュリティ タブで上書き可能です。

ページの CRUD アクセスチェックワークフロー

CRUD 認証の個々のページをチェックするワークフローは、次の通りです:

  1. action = Create, Read, Update, Delete もしくは List を設定する
  2. 現在のページからすべての Page Groups を走査する
  • Page Authors 一覧にユーザーがいれば、特別な authors グループに マッチ する
  • ユーザーがログインしていたら、特別な defaults グループに マッチ する
  • ユーザーがグループを持っていれば、そのグループに マッチ する
  • もし マッチ していたら:
    • action 認証が Deny を返すとき: 即中断し、 false返す
    • action 認証が Allow を返すとき: allow flag = true を設定する
  • 続けて次のグループを処理する
  1. すべてのグループを走査し終わったら、action のユーザーパーミッションをチェックする
  • allow flagtrue だったとき: true を返す
  1. ユーザーのグローバルな Pages 管理パーミッションをチェックする(一度だけ)
  • action 認証が Deny を返すとき: false返す
  • action 認証が Allow を返すとき: true返す
  1. ページが親パーミッションを継承するかチェックする
  • Inherit Permissions = Yes の場合:親ページについて同じチェックを行う
  • 上記以外の場合、 null返す

Root Page

// リンク切れ画像です
![Root Page](page-permissions.png?width=2030&classes=shadow)

Root ページは、 Grav 1.7 以上で特別なページです。
それにより、サイト管理者は、すべてのページについてデフォルトのパーミッションを設定できます。
Super User もしくは Pages Configuration の権利を持つユーザーのみがそれを見られます。

root ページは、 user/pages/root.md ファイルに保存されます。
現在このページはアクセスできないため、ページとしてのコンテンツを含みません(将来、変更されるかもしれません)。