Currently working my way through Addison Wesley's Development with the Force.com Platform; having a problem on page 90.
I've created all the requisite sObjects and profiles, as described in the book.
"Resource" is a custom sObject. On "Resource" there is a picklist field for "Region" with possible values "East", "West", and "Central".
"Project" is another custom object; it is related to "Resource" by a third custom object, a junction object ("Assignment"), for which these two sObjects are stored in Master-Detail fields.
For Jane Grey's Resource record, the value of "Region" is "West". The owner of this record is "Carrie Oakey", who is the "Vice President" (custom Profile, cloned from "Salesforce Platform") of the "West" (Role, sits under "Executive", parallel to "Central" and "East"). By default, there are two sharing rules: (1) The owner has full access; and (2) Other Users with the "West" Role have "Read/Write" access [because of a custom object sharing rule]. I have manually created the 3rd sharing rule on Jane's Resource record that Users with the "Central" Role should also have "Read Only" access.
Now, I log in with "Barry Cade", the Staffing Coordinator (custom Profile, also cloned from Salesforce Platform; has "Read, Create, Edit, Delete" object permissions for "Assignments", "Projects", and "Resources") of "Central" (role).
I attempt to assign "Jane Grey" as a Resource to Project "XYZ", but I get this error:
Insufficient Privileges You do not have the level of access necessary to perform the operation you requested. Please contact the owner of the record or your administrator if access is necessary.
Barry can successfully read Jane's record. Barry can successfully create Assignment records when [some] other values fill the "Resource" field. The System Administrator can successfully store "Jane" in the "Resource" field.
Any ideas what I have done wrong or forgotten to do?