An easy way to display different content in your Kirby panel for different user roles.
Download and copy this repository to /site/plugins/kirby-policy
.
composer require beebmx/kirby-policy
You can create your YAML files as usual; you only need to follow a file structure and file content.
In your blueprints
directory, you can place your YAML files with the suffix policy
:
blueprints
├── pages
│ ├── default.yml
│ ├── home.policy.yml
│ ├── simple.policy.yml
│ ├── multiple.policy.yml
│ ├── content.yml
│ ├── blog.yml
│ └── post.policy.yml
├── users
│ ├── admin.yml
│ └── editor.yml
└── site.yml
Caution
You cannot have a file without the prefix to avoid ignoring the policy file
e.g. home.yml
and home.policy.yml
(just use home.policy.yml
)
The content of your YAML file need to add a policy
property with the user role
to every element than you need to customize:
title: Page
tabs:
# Only an admin will see the admin tab
admin:
label: Admin
policy: admin
columns:
main:
type: fields
fields:
item:
label: Item
type: text
content:
label: Content
icon: page
columns:
main:
width: 2/3
sections:
content:
type: fields
fields:
text:
label: Text
type: text
# Only an admin will see the admin field
admin:
label: Admin
type: text
policy:
- admin
# Only an editor will see the editor field
editor:
label: Editor
type: text
policy:
- editor
# An admin and editor will see the mixed field
mixed:
label: Mixed
type: text
policy:
- admin
- editor
sidebar:
sticky: true
width: 1/3
sections:
pages:
type: pages
template: default
files:
type: files
Note
The policy
property can be a string or an array of roles
Option | Default | Types | Description |
---|---|---|---|
beebmx.kirby-policy.excluded | users | array string |
Excluded blueprints |
beebmx.kirby-policy.suffix | policy | string |
Blueprint suffix (e.g. file.policy.yml) |
Licensed under the MIT.
- Fernando Gutierrez @beebmx
- jonatanjonas
logo
- All Contributors