I am trying to give edit permissions for my partners on a custom object, but on the same time, I need them to have READ only on some of the fields that they see.

The custom object includes a text c_field that should NOT be edited, but it is visible as read only on the page layout of the partner.

Dongle ID is the field I need as read only.

I want to point that there is NO option to remove the required setting from the page layout - I assume this is because the field itself has the isRequired settings

enter image description here

  • blue dot is: always on layout
  • red star: required field.

enter image description here

Starting with the field property on the page layout shows

enter image description here as you can see, the field is required, and the 'read only' CB is greyed out.

How can I change that?

Checking the Field Accessibility Settings, I get a message that the field is required because of Page Layout

enter image description here Indeed, that's what I want to change ^^ - I want to set is as read only.

One option I have in mind, is to remove the required CB - and set a validation rule on the field. But I don't like that approach (even that it will work).

Any ideas?

EDIT: This is what I see in the permission sets -

enter image description here

NOTE: As for profiles: I don't want to create another profile for this specific partner - that's why I use permission sets. (and checking in the profile object settings - the behaviour is the same)

2 Answers 2


Setting 'required' at the sobject's definition level is the 'nuclear' option for requiring data entry as it overrides any field level security you might have. This results in some interesting interactions with High Volume Customer Portals/Customer Communities (If you make the lookup field you are using for record sharing required then the records visibility can be changed by someone who changes the value of this lookup field).

The softer way is a validation rule and marking it as required on page layouts and on VF pages. I would back the 'required' flag off the sObject and do that.

  • As you said, I prefer to have the required setting on the object, as nuclear, or the 'root' requirement, and change options afterwards.
    – Saariko
    Commented Oct 5, 2012 at 14:51

If your requirements are to sometimes have the dongle id field read only, you will have to remove the required attribute at the field level. This attribute trumps layout settings and field level security. Once you remove the required field attribute, you will be able to configure field permissions on the permission set or profile the way you want it. If sometimes the field is required, use layout field properties to make it required.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .