Check Profile Based Field Level Security Using Apex
For Specific Profile :
List<FieldPermissions> fpList = [SELECT SobjectType, Field, PermissionsRead, PermissionsEdit, Parent.ProfileId FROM FieldPermissions WHERE SobjectType = 'Account' and Field='Account.Customer_Priority__c' AND Parent.ProfileId IN (SELECT Id FROM PermissionSet WHERE PermissionSet.Profile.Name = 'System Administrator')]; if(!fpList.isEmpty()){ Boolean hasReadPermission = fpList[0].PermissionsRead; Boolean hasEditPermission = fpList[0].PermissionsEdit; system.debug('Read Permission - ' + hasReadPermission); system.debug('Edit Permission - ' + hasEditPermission); }
For Current User :
List<FieldPermissions> fpList = [SELECT SobjectType, Field, PermissionsRead, PermissionsEdit, Parent.ProfileId FROM FieldPermissions WHERE SobjectType = 'Account' and Field='Account.Customer_Priority__c' AND Parent.ProfileId=:Userinfo.getProfileId()]; if(!fpList.isEmpty()){ Boolean hasReadPermission = fpList[0].PermissionsRead; Boolean hasEditPermission = fpList[0].PermissionsEdit; system.debug('Read Permission - ' + hasReadPermission); system.debug('Edit Permission - ' + hasEditPermission); }