4

I have the Node Hierarchy module on my Drupal installation, and I am using the following hierarchy:

  • Main Navigation (menu)
    • Art & Sciences
      • Art
      • Sciences
    • Economy
      • News
        • World wide
        • Other

What I want is that:

  • Stephanie can add/edit/delete content any content from "Art & Sciences" section
  • Stephanie can NOT add/edit/delete any content from other sections
  • John can add/edit/delete content any content from "Economy " section
  • John can NOT add/edit/delete any content from other sections

I tried to install Workbench access; it creates me sections, but users can choose any node for parent, whatever the hierarchy.

Node Hierarchy obviously add nodes to the "Main navigation" menu as menu links. Despite of editors, everyone can add a node in every menu, but I want to restrict each user to their section. I can assign only the section I want to a node, but in the hierarchy it's not correct.

Is there any module (even if I have to use more than one) I can use to achieve what I want?

  • That would be a fair amount of code to write, very unlikely that anyone will do it all for you here. I suggest you post this as a feature request to the Node Hierarchy issue queue – Clive Sep 26 '13 at 13:54
  • Thanks, but I'm in a hurry, I can't wait I think. Maybe I will have to use taxonomy access control :-/ – Adysone Sep 27 '13 at 7:44
  • Sorry but this site doesn't exist because you can't wait to go through the proper channels - we don't provide a support forum or code-writing service here, please either add the code you're already using to the question, along with a full description of what parts aren't working, or submit this as a feature request to the Node Hierarchy Module. Thanks. – Clive Sep 27 '13 at 7:50
  • I'm sorry, I meant that I have to figure it out quickly, but with standard module, so I don't ask for code or whatever, just if a solution exists, because I thought it was very current to do what I want, but I couldn't find anything on the web. I'll edit my question to be more specific. – Adysone Sep 27 '13 at 8:53
1

Have you evaluated Organic Groups for this use case? Maybe you can implement your sections as groups.

Users join groups/sections. Inside their group, they are allowed to add+edit (because nodes belong to this group they are in). But nodes outside of their group, they can only view.

The "main site" can display all group content to visitors.

OG basicaly categorizes your nodes into access categories.

  • Thanks, but it only helps me for one point. I also want to display menus items etc. I found a solution, I'll post it soon! – Adysone Oct 29 '13 at 11:12
  • OG offers solutions for many of the related challenges that will follow. Menus, for example, can be turned into "category-specific menus" (a menu for "Art", a menu for "Sciences") using the og_menu module. (drupal.org/project/og_menu) But a solution which you already have built, is better than every other suggestions that anybody tries to sell to you, I agree :) – user18099 Dec 11 '13 at 11:26
  • I used OG for another project and I must tell it's great for this case. – Adysone Jan 22 '14 at 9:59
2

I suggest you attach a taxonomy vocabulary to your content type and use the Taxonomy Access module.

So, create your vocabulary:

  • Arts & Science
  • Economy
  • News

Create roles based on taxonomy:

  • arts_role
  • economy_role
  • news_role

Assign permissions to roles:

  • Edit terms in Arts & Science to arts_role
  • Delete terms from Arts & Science to arts_role
  • Edit terms in Economy to economy_role
  • Delete terms from Economy to economy_role
  • Edit terms in News to news_role
  • Delete terms from News to news_role

Assign your users to your roles:

  • Stephanie gets arts_role
  • John gets economy_role
  • I know this way, but the problem is that I don't want the contributors to choose a parent node AND a taxonomy term. It's not user friendly... – Adysone Sep 27 '13 at 7:43
  • it makes sense to me that the admin would define the user roles... – Scott Joudry Sep 27 '13 at 13:37

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.