One of Drupal’s great features is its permissions system, by which administrators can easily control and limit the content and capabilities of different user groups on the site. It works great for general restrictions but fails to provide a way to grant specific users read/write access to specific nodes (pages). This was a problem when Prof. Erik Harms approached me to create student pages that only that one student can update (to post their essays) on his Modern Southeast Asia course website. Here’s the best solution I found:
In short, the idea here is to create a tag for each account, to tag the desired nodes to correspond to the desired editor account, and to grant individual users edit access to ONLY those nodes with “their” tag using the Taxonomy Access Control Lite module.
1. Site Building > Modules. Enable the Taxonomy module. This is a core module — that is, it comes with the default Drupal install. Make sure admin can administer the module.
2. Content Management > Content Types. Create a new content type, e.g., “Student Pages”.
3. Content Management > Taxonomy. Create a new vocabulary (“Student Tags”). Edit the new vocabulary to apply only to the new content type.
4. Add a term for each account — in my case, I created a term for each student’s name.
5. Create the desired nodes as the new (“Student Pages”) content type, tagging each node with the desired editor’s name or account name.
6. Download and install the Taxonomy Access Control Lite module. Enable admin permissions.
7. User Management > Access Control By Taxonomy. Select the taxonomy vocabulary and create 2 schemes, called “View Only” and “Edit”.
8. User Management > Users. On the user edit page, select the Taxonomy-Based Access tab, under the “Edit” scheme, select that user’s tag.
This method can be tweaked to allow several users to edit one node. While this is certainly not the only solution and would become tedious and time consuming for a site with many users, it’s a quick and easy solution for smaller sites.