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.ymlCaution
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.policy.excluded | users | array string |
Excluded blueprints |
| beebmx.policy.suffix | policy | string |
Blueprint suffix (e.g. file.policy.yml) |
Warning
Since version 1.2.0, Policy changes the plugin prefix from beebmx.kirby-policy to beebmx.policy.
Licensed under the MIT.
- Fernando Gutierrez @beebmx
- jonatanjonas
logo - All Contributors