Set record to read-only conditionally

In Enterprise (version 11 or 12), is there a standard (or custom code) way to make a record read-only.

In reality, this will be conditional based on a field, so the conditional field itself may need to remain editable for certain users.

We have a large number of fields on the module in question so the Roles Read-Only field level functionality is not appropriate.

I see this link from the Club from 2016 but am curious if there have been any advances since then.