I'm building a site that regroups several properties, and I'd like each manager to edit content in his property only. All properties use the same templates and share content between each other.

I first tried to create a new section for each property, but it occurs to me that it would be much simpler to have a "room" and "facilities" section (and templates), and then divide everything using categories.

However at the moment user permissions only allow a user to add any category to their entries, which could lead to mistakes if users are not careful.

Would it be possible to limit users to a single category, so that user1 can only edit entries in category1 and user2 in category2? Any tips on how to approach this?

Thanks in advance

2 Answers 2


Entry permissions are sort of an all or nothing thing. If they can publish entries, they can publish all entries or just their own entries. The tricky part of this kind of permission is that Craft doesn't know if a category field will be on a particular entry type.

A possible way to make this work is to create a custom plugin that fires the entries.onBeforeSaveEntry event, and checks each user's category access with the entry's categories. Granted, you run into the issue of them being able to remove the category to remove any problems.

A second option is to give them a special front-end portal area that will let them edit entries, and let you filter those entries to what they can edit. You will also then be able to omit fields that you don't want them to edit (including the categories that prohibit their access).

  • Thanks, I'll be looking into both options however for a newbie like me seems like there no easy options.
    – Paul
    Jul 23, 2014 at 3:07

I found another workaround which works quite well: I create a user group where users can only edit their entries.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.