PHPackages                             fendinger/kirby-roles - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Authentication &amp; Authorization](/categories/authentication)
4. /
5. fendinger/kirby-roles

ActiveKirby-plugin[Authentication &amp; Authorization](/categories/authentication)

fendinger/kirby-roles
=====================

A Kirby CMS Panel plugin that adds a Roles menu item for managing user roles directly from the Panel

1.0.0(1mo ago)13MITPHP

Since Apr 15Pushed 1mo agoCompare

[ Source](https://github.com/fendinger/kirby-roles)[ Packagist](https://packagist.org/packages/fendinger/kirby-roles)[ Docs](https://github.com/fendinger/kirby-roles)[ RSS](/packages/fendinger-kirby-roles/feed)WikiDiscussions main Synced 1w ago

READMEChangelog (1)Dependencies (2)Versions (2)Used By (0)

[![Kirby Roles](https://private-user-images.githubusercontent.com/41189281/578815062-f609ef16-1573-4629-8d8a-a2e25339b7df.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODA5NzQ3OTksIm5iZiI6MTc4MDk3NDQ5OSwicGF0aCI6Ii80MTE4OTI4MS81Nzg4MTUwNjItZjYwOWVmMTYtMTU3My00NjI5LThkOGEtYTJlMjUzMzliN2RmLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA2MDklMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNjA5VDAzMDgxOVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTRjMDU0MjM5NmIyMzNhZDk2NWU4YjJmMWU1MjA4NjU2NWUwNTM1YjI2ZDU4YzdlMjFkMWEwNmRiZGZlNmVlODgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JnJlc3BvbnNlLWNvbnRlbnQtdHlwZT1pbWFnZSUyRnBuZyJ9.xyUscMINGmRcvIWcilA613trt93p2uEUIm-pRMwjrm4)](https://private-user-images.githubusercontent.com/41189281/578815062-f609ef16-1573-4629-8d8a-a2e25339b7df.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODA5NzQ3OTksIm5iZiI6MTc4MDk3NDQ5OSwicGF0aCI6Ii80MTE4OTI4MS81Nzg4MTUwNjItZjYwOWVmMTYtMTU3My00NjI5LThkOGEtYTJlMjUzMzliN2RmLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA2MDklMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNjA5VDAzMDgxOVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTRjMDU0MjM5NmIyMzNhZDk2NWU4YjJmMWU1MjA4NjU2NWUwNTM1YjI2ZDU4YzdlMjFkMWEwNmRiZGZlNmVlODgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JnJlc3BvbnNlLWNvbnRlbnQtdHlwZT1pbWFnZSUyRnBuZyJ9.xyUscMINGmRcvIWcilA613trt93p2uEUIm-pRMwjrm4)Kirby Roles
===========

[](#kirby-roles)

A Kirby 5 Panel plugin that adds a **Roles** menu item for managing user roles directly from the Panel. Create, edit, and delete roles with a visual permissions editor — no more manually editing YAML files.

Features
--------

[](#features)

- **Panel area** with dedicated "Roles" menu item
- **List view** of all roles with icons and context menus
- **Detail view** with profile card (like the user view) and permissions editor
- **CRUD** — create, edit, and delete roles via dialogs
- **Permissions editor** using Kirby's native checkbox fields
- **Save/Cancel** using Kirby's standard `k-form-controls` component
- **Settings button** (cog icon) with edit/delete dropdown
- **Pencil on hover** for quick title editing (like pages/users)
- **Protection** — `admin` and `nobody` roles cannot be modified or deleted
- **Safety check** — roles with assigned users cannot be deleted
- **Admin only** — only admin users can manage roles
- **i18n** — English and German translations included
- **Dark mode** compatible

Installation
------------

[](#installation)

### Composer

[](#composer)

```
composer require fendinger/kirby-roles

```

### Manual

[](#manual)

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

Menu position
-------------

[](#menu-position)

By default, the Roles menu item appears after the System entry. To place it above Users, add this to your `site/config/config.php`:

```
return [
    'panel' => [
        'menu' => ['site', 'languages', 'roles', 'users', 'system']
    ]
];
```

How it works
------------

[](#how-it-works)

Roles in Kirby are defined as YAML blueprint files in `site/blueprints/users/`. This plugin provides a Panel UI to manage these files:

- **Creating** a role generates a new `site/blueprints/users/{name}.yml` file
- **Editing** updates the `title`, `description`, and `permissions` in that file
- **Deleting** removes the YAML file (only if no users are assigned to the role)

The `admin` role is built into Kirby and always exists, even without a blueprint file. It cannot be edited or deleted through this plugin.

API routes
----------

[](#api-routes)

The plugin also registers API routes for programmatic access:

MethodPatternDescription`GET``/api/roles`List all roles`GET``/api/roles/{id}`Get a single role`POST``/api/roles`Create a new role`PATCH``/api/roles/{id}`Update a role`DELETE``/api/roles/{id}`Delete a roleTranslations
------------

[](#translations)

The plugin ships with English and German translations. To add another language, create a new file in `translations/` and reference it in `index.php`:

```
'translations' => [
    'en' => require __DIR__ . '/translations/en.php',
    'de' => require __DIR__ . '/translations/de.php',
    'fr' => require __DIR__ . '/translations/fr.php',
],
```

Support
-------

[](#support)

If you find this plugin useful, you can support the development:

[![Buy Me A Coffee](https://camo.githubusercontent.com/1dea0ad376c70a0cbfde2d09ed3621fa1aa91b4bba6e95ad2d3354f962155b9a/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4275792532304d6525323041253230436f666665652d737570706f72742d79656c6c6f773f7374796c653d666c61742d737175617265266c6f676f3d6275792d6d652d612d636f66666565)](https://buymeacoffee.com/fendinger)

License
-------

[](#license)

MIT

Author
------

[](#author)

[fendinger.de](https://fendinger.de)

###  Health Score

35

—

LowBetter than 77% of packages

Maintenance89

Actively maintained with recent releases

Popularity6

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity33

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

55d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/41189281?v=4)[fendinger](/maintainers/fendinger)[@fendinger](https://github.com/fendinger)

---

Top Contributors

[![fendinger](https://avatars.githubusercontent.com/u/41189281?v=4)](https://github.com/fendinger "fendinger (1 commits)")

---

Tags

rolespermissionskirbykirby-pluginpanelrights

### Embed Badge

![Health badge](/badges/fendinger-kirby-roles/health.svg)

```
[![Health](https://phpackages.com/badges/fendinger-kirby-roles/health.svg)](https://phpackages.com/packages/fendinger-kirby-roles)
```

###  Alternatives

[spatie/laravel-permission

Permission handling for Laravel 12 and up

12.9k98.0M1.3k](/packages/spatie-laravel-permission)[santigarcor/laratrust

This package provides a flexible way to add Role-based Permissions to Laravel

2.3k5.6M46](/packages/santigarcor-laratrust)[bezhansalleh/filament-shield

Filament support for `spatie/laravel-permission`.

2.8k3.5M115](/packages/bezhansalleh-filament-shield)[pktharindu/nova-permissions

Laravel Nova Grouped Permissions (ACL)

136409.8k](/packages/pktharindu-nova-permissions)[bnomei/kirby3-janitor

Kirby Plugin for running commands like cleaning the cache from within the Panel, PHP code or a cronjob

9342.0k2](/packages/bnomei-kirby3-janitor)[belugadigital/kirby-navigation

Kirby 5 field for hierarchical menus with drag &amp; drop level indentation.

8613.8k](/packages/belugadigital-kirby-navigation)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
