User wants to hide '+' or the ability of other custom roles to create new from the custom list field.
As this is yet considered a system limitation for Custom List, the workaround is to convert the custom list into Custom Record. This is filed under Enhancement #161800 - Ability to Limit Access Level in Custom List under Access subtab
I. Convert the Custom List into a Custom Record Type
1. Navigate to Customization > Lists, Records, & Fields > Lists.
2. Click Edit on the Custom List you have created.
3. Tick on the checkbox for Convert to Custom Record
This cannot be undone. This converts the list in to a Custom Record Type. The list name becomes the name of the Custom Record Type and its values become Custom Record Entries.
4. Click Save.
II. Use the Custom Record Type Permissions to control the Roles and the level of access that users should have to the list.
1. Navigate to Customization > Lists, Records, & Fields > Record Types.
2. Look for your custom list on Record Types list and click it.
3. In the Main Line, Access Type = Use Permission List
4. Click the Permissions tab
- Add all the Roles that should have access to this Custom Record Type. Please see sample screenshot below:
- Set Level = View for the Roles that should only be able to select from the existing list but no new creation.
- Set Level = Full for the Roles that should have full rights to this list (i.e. add/edit/delete)
5. Click Save
The owner of the Custom Record Type are able to see the Open/Add/Edit buttons regardless of the role you are using.
As you can see, the + sign is no longer visible on the Blank Permission (Accounting Center) role I have but at the same time, can select any state from the sales order.
Please see screenshot below:
The difference between State (custom list converted into custom record) and State 2 (custom list) with the access level of 'View' only is the State still allows users to view the list and select it, while the State 2 is uneditable nor clickable. Please see screenshot below: