Separate permission for buttons and workflows

Since there is a separate “Comment” capability that unlocks access to a specific field in Entity, I assume we could have two additional capabilities (or one of them):

  • Buttons – to use buttons
  • Workflow – to modify the workflow state

This would allow users with the lowest access levels to be more independent, for example, marking tasks as completed without the ability to change deadlines, and so on.

The workflow field is pretty much just a normal select field, and adding support for specific permissions for that field would be on a par with field-level permissions in general, which is something that is not on the radar, due to the complexity.
The backend does include the necessary framework for allowing ‘button press’ do be a capability distinct from update, and it is something that has been considered. The biggest issue is that when a button executes, it does so with the permissions of the person who pressed it, which means there could be some frustrating experiences. For example, if the button has been configured so as to update a specific field value when it is pressed, the user might have the capability to press the button, but not the capability for the button actions to be executed!

Yes, what I mean is that the capability to use buttons (automations) would grant the ability to act as an editor when doing so. I thought this might be possible since the Comment capability allows one to be an editor of the Comments field while the Entity itself remains read-only.

Under the hood, comments are stored as entities linked to the parent entity, so they don’t behave like a basic field (number, date, text, etc.) but are closer to being a collection field (one-to-many relation).
This means a user can have ‘editor’ access to comments in the comments ‘database’ that belong to this entity.
In other words, although it looks like a field-level capability, it’s a database/entity level capability.

This would imply a temporary extension of a user’s capabilities while the button is executing, and it’s not really feasible for a user to quickly gain and then lose capabilities.

For what it’s worth, I would love it as a feature myself, but I know from the inside that it’s not an easy thing to do.

I realised after writing, that what I wrote about the workflow field is somewhat misleading, since it too behaves like a database (it’s basically a many-to-one relation). I’m not saying that it makes implementing it any easier :wink: