3

I have a community which I created with the Build Your Own template:

enter image description here

This template creates by default 3 GENERIC RECORD PAGES:

enter image description here

I don't want to give access to my users for these pages, but I could not find any way to remove the pages or access to them. Usualy in the page properties there is a PAGE VARIATIONS tab and there you can delete or remove access, but this tab does not exist for these pages:

enter image description here

QUESTION

How can I remove or hide these pages?

3

You do not have to remove these as they will not be visible to end users unless you actually use them to create pages for an object. They also have to be present for the Community Builder to work correctly as templates for the object pages.

When logged in as a community user if I try to navigate to an object by URL hacking I'd just get an 'invalid page' error, e.g. hacking the URL from https://.force.com//s/ to https://.force.com//s/Account/Recent will give an invalid page.

To enforce access to records for community users you need to enable the External Sharing from the Sharing Settings page and make objects Private, then use configuration to control which records on an object they will have access to.

The record access is different for users on Customer Community and Customer Community login where you need to use Sharing sets to make records visible and Customer Community Plus or Parter Community users where you can use Apex sharing or normal SF Sharing settings to share specific records to the community users. For example only allow the community user to see the account record that is linked to their Contact record, only allow community user to see their own contact record.

With the list views it is not possible to prevent a community user viewing the 'Recent' record list but this will only have data in it once they have viewed some records and the others can be restricted to internal users (though that has to be done in Classic not Lighting view).

  • But in my community I can access records - for example: .force.com/grants/s/detail/a1a0x000000RMIOAA4 opens the record page (detail is the url for the page in it's properties) – Itai Shmida Dec 31 '18 at 11:01
  • Dont give object access to the community profile. You being system admin can access it in community builder and when you login as urself in community – Pranay Jaiswal Dec 31 '18 at 11:07
  • @PranayJaiswal how do I do that? I cannot find it, can you guide me (as an answer)? – Itai Shmida Dec 31 '18 at 11:19
  • If you enable external sharing you can restrict the objects using private sharing settings - I'll edit into my answer. – Dave Humm Dec 31 '18 at 11:29
  • @DaveHumm I have customer community login licenses, and I use sharing set to allow these users for records, but it seems that the user can access all records in the community from this url. I did not understand from your answer what exactly should I do – Itai Shmida Dec 31 '18 at 12:04
1

Every community user has a profile. The trick is to edit that profile and remove the read access to that object at profile level. Once the read access is invoked, the User even if they have access to record they wont be able to access the content via URL hacking or directly hitting the Salesforce Rest Endpoint(Community user is API enabled, so it can hit the SF rest endpoint and access data of records which you haven't' provided access via UI)

You can find the profile of community member under

Communities -> Workspaces -> Member > Selected profile.

Once you get profile name, edit that profile like the way you do it normally and edit the FLS and Object setting to not even have read permission

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.