Reference

Guide

Permissions

If you want to make the permissions for different actions of your plugin configurable by user role, you can register the available actions with the permissions extension.

PHP definition

Each available action needs to be set with the default permission value. The default value is used if the user's role does not specify the permissions for that action.

/site/plugins/permissions/index.php
Kirby::plugin('my/permissionPlugin', [
    'permissions' => [
        'access' => true,
        'create' => true,
        'delete' => false
    ]
]);

Usage in the user blueprint

The permissions can now be set in the user blueprint for each role (just like the core permissions).

/site/blueprints/users/editor.yml
title: Editor
permissions:
  my.permissionPlugin:
    *: false
    access: true

Access from your plugin

You can then check the permissions for each action in your plugin:

$kirby->user()->role()->permissions()->for('my.permissionPlugin', 'access') // true
$kirby->user()->role()->permissions()->for('my.permissionPlugin', 'create') // false