https://salesforcecodex.com/salesforce/enforce-object-level-and-field-level-permissions-in-apex/
Enforce Object-level and Field-level permissions in Apex