[SalesForce] Give High Volume Customer Portal User access to their own Contact Records

I have been working on setting up an force.com site that uses Overage Authenticated Website User Licenses to authenticate the users. I have been able to successfully give the users read/write access to custom objects via the Customer Portal Settings page. I have also set up a Sharing Setting object related to the Profile my Authenticated Website Licenses are under and gave access to objects based off objects the fact that their contactID fields that matches their user's Contact ID field. The API states

"Select Only records where the high-volume portal user’s contact matches to give high-volume portal users access only to the records that are associated with their contacts. For example, choosing this option for cases would give users access only to the cases that they filed, or cases that were filed on their behalf by a support representative"

Reading this it doesn't seem like I would be able to give them access to their respective contact record through these sharing settings.

I currently can get no contact fields to display on my visualforce pages. I need to be able to let the users edit their information saved in their contact. I have been searching through the API but maybe I am missing something. I have seen in other people's questions/experiences that they are able to access the contact objects.

Like this post to StackExchange:
Give High Volume Customer Portal User access to Contacts

Do I have to do this through a account that is linked to the same contact or is there a way that I can just give them permission to edit their own contact records?

Thanks for the help!

Best Answer

For all cases where portal licenses don't permit you to do what you want, create a wrapper class of the fields you need, query the contact by id, and let the customer edit. Then take the wrapper and write back to the contact.

I've had to do this for the very same reason and it's very straightforward.

Also, I think I read somewhere that the customer community replacement for the portal fixed this issue, so there may be a non-code solution.

Related Topic