[SalesForce] Greyed out fields on object settings in permission sets

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)

Best Answer

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.