Tailor permissions per entry, restricting certain features and combining Tailor models in backend lists

In this post we’re told that content owner permissions are going to be introduced. (If not already) Which is great.

I’m wanting a more fine-grained approach to permissions if possible.

We’ve currently got a Content Page tailor model. And we’re using content groups to allow our client to select a page type. For example…

  • Dynamic Page
  • Simple Page
  • Contact Page

We’ve then got separate Tailor models for what we’re calling “system pages”… For things like the login and registration etc… These pages do have content on them that should be editable, but the client shouldn’t be allowed to delete them, or change certain fields like the slug.

Ideally, we’d like to list these system pages with the content pages list in the backend.

Is this possible “out of the box” (I hate that phrase) with October?

At the moment we’ve got a menu structure in the backend pages that works, but we’ve found it’s a little convoluted, and confusing for clients.

Content

  • Pages
  • Menus
  • Blog
  • Login Page
  • Registration Page

This is certainly possible by extending the model constructor to inspect the changes and throw a validation error if something isn’t right. Here’s a link to the docs:

You could register custom permissions / admin groups and check things like $model->isDirty('slug') with throw new ValidationException(['slug' => 'Oops! No no no']);

The tailor models are like regular models, but must be extended from the outside. Eventually we will give you the option to extend them completely for specific blueprints.