I'm trying to resolve a sharing issue with Case records. The org-wide defaults are private Accounts, private Opportunities, Contacts controlled by Parent and Cases are private.
If a case is owned by a queue or user, the members of the queue or user can see the case and work on the case based on their profile settings. I have a user with a profile that has create/read/edit and I want them to be able to access the case when they do not own the case. I cannot set cases to public read without setting account to public read, which is not an option. I have tried setting up sharing rules on the case and the user gets insufficient privileges. I also tried manually sharing the account, opportunity and case with the user giving full read/write access and they still get insufficient privileges.
Now, if I give the "View All" permission then they can access the case. Or, if I add them as a case team member they can see and edit the case. However, the "View All" permission seems a bit heavy handed and the case team is not the best solution because it is manual unless I write some code to automate the sharing and there are other limitations that would not fit this particular business requirement.
A case sharing rule would be the best solution, but I cannot identify why I keep getting insufficient privileges. I tried sharing cases with the highest role and their subordinates with the highest role and their subordinates, which shares the case with everyone and giving them public read access. The profile has create/read/edit. The field level security is set properly. I even removed all unnecessary fields and lookup fields from the case layout and left only the standard case fields on the layout. The profile has access to the case record types. I removed all related lists from the page layouts. What other case settings could cause the user to get insufficient privileges. I don't see what else is missing to give them access.