beebmx/kirby-policy

Kirby Blueprint Policies for Kirby 4

Installs: 63

Dependents: 0

Suggesters: 0

Security: 0

Stars: 14

Watchers: 2

Forks: 0

Open Issues: 0

Type:kirby-plugin

1.0.7 2024-08-02 17:45 UTC

This package is auto-updated.

Last update: 2024-12-02 18:31:34 UTC


README

Kirby Policy Logo

Build Status Total Downloads Latest Stable Version License

Kirby Policy

An easy way to display different content in your Kirby panel for different user roles.

Overview

Installation

Download

Download and copy this repository to /site/plugins/kirby-policy.

Composer

composer require beebmx/kirby-policy

Usage

You can create your YAML files as usual; you only need to follow a file structure and file content.

File structure

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)

File Content

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

Options

License

Licensed under the MIT.

Credits