While it's useful and relatively simple to add your own custom permission keys to existing permission categories, certain permissions extensions require the creation of a completely new permission category. For example, let's say we're creating a custom eCommerce solution, including a custom eCommerce product object:
This is a completely custom object provided by our add-on, and we want to add some permissions functionality to it, including
- View Product
- Edit Product
- Delete Product
- Create New Products
In this list of permissions, "Create New Products" is actually a task permission – it's global, and can simply be added as in previous examples. But "View Product", "Edit Product" and "Delete Product" apply specifically to a Product object – we want to make it so that certain products can only be edited by certain users or groups. This means we need to both create these new permission keys, and an entirely new permission category for them. This is going to require custom backend code, and some custom front-end code – but it's all possible from within a concrete5 package.