検索は翻訳元へ

ページのパーミッション

訳注

このページの解説も、画像がリンク切れしており、内容も アカウント > パーミッション に類似しています。内容的には、アカウント画面のパーミッションの設定と、各ページ編集画面のセキュリティタブにある、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 ファイルに保存されます。
現在このページはアクセスできないため、ページとしてのコンテンツを含みません(将来、変更されるかもしれません)。