Kirby permissions to give role permissions to manage content of 1 blueprint only?

I have a requirement to add a user role to Kirby which allows no editing at all, except content of the type “note” (taking the starterkit as example, Kirby v3.5.7.1)

I have set this up as follows:
Role isn’t allowed to anything but read content in panel:

# /site/blueprints/roles/editor.yml
title: Editor
    update: false
    *: false
    preview: true
    read: true
  users: false
    changeRole: false

Adjusted the note blueprint; added the following:

    editor: true
    editor: true
    editor: true
    editor: true
    editor: true
    editor: true
    editor: true

This works, but has 1 issue I can’t seem to solve. On the “notes” blueprint, there are pages sections defined where a “note” can be added. But I can’t get the “Add” button to appear for the editor role. This means editors can only administer existing “note” content, but they can’t add a new “note”. Is this expected? If not, how can I work around this?


Looking at it, your setup seems correct. It might be a bug that we don’t check the note permissions in the create dialog. If this is the case, your only workaround at the moment is to allow creating all pages and work with a hook to check permissions individually. This wouldn’t be ideal because the user would fill in all fields in the create dialog first and then get an error because they are not allowed to submit it, but it would at least work until we fixed that. Could you create an issue for it?

@bastianallgeier @bvdputte Looking at the pages section code (if it’s a pages section Bart setup), it looks like the code looks at global pages.create permission - kirby/PagesSection.vue at c77ccb82944b5fa0e3a453b4e203bd697e96330d · getkirby/kirby · GitHub

1 Like

Of course: Permissions issue in the pages section "Add" button · Issue #3828 · getkirby/kirby · GitHub

Thx for the feedback.

Any chance to get a fix for that problem soon?
I have the same issue like @bvdputte and dont what to workaround the problem with a hook :frowning: