The following are methods for Security.
public static System.SObjectAccessDecision stripInaccessible(System.AccessType accessCheckType, List<SObject> sourceRecords, Boolean enforceRootObjectCRUD)
In this example, the user doesn’t have permission to create the Probability field of an Opportunity.
List<Opportunity> opportunities = new List<Opportunity>{ new Opportunity(Name='Opportunity1'), new Opportunity(Name='Opportunity2', Probability=95) }; // Strip fields that are not creatable SObjectAccessDecision decision = Security.stripInaccessible( AccessType.CREATABLE, opportunities); // Print stripped records for (SObject strippedOpportunity : decision.getRecords()) { System.debug(strippedOpportunity); } // Print modified indexes System.debug(decision.getModifiedIndexes()); // Print removed fields System.debug(decision.getRemovedFields()); //Lines from output log //|DEBUG|Opportunity:{Name=Opportunity1} //|DEBUG|Opportunity:{Name=Opportunity2} //|DEBUG|{1} //|DEBUG|{Opportunity={Probability}}
public static System.SObjectAccessDecision stripInaccessible(System.AccessType accessCheckType, List<SObject> sourceRecords)
In this example, the user doesn’t have permission to read the ActualCost field of a Campaign.
List<Campaign> campaigns = new List<Campaign>{ new Campaign(Name='Campaign1', BudgetedCost=1000, ActualCost=2000), new Campaign(Name='Campaign2', BudgetedCost=4000, ActualCost=1500) }; insert campaigns; // Strip fields that are not readable SObjectAccessDecision decision = Security.stripInaccessible( AccessType.READABLE, [SELECT Name, BudgetedCost, ActualCost from Campaign]); // Print stripped records for (SObject strippedCampaign : decision.getRecords()) { System.debug(strippedCampaign); // Does not display ActualCost } // Print modified indexes System.debug(decision.getModifiedIndexes()); // Print removed fields System.debug(decision.getRemovedFields()); //Lines from output log //|DEBUG|Campaign:{Name=Campaign1, BudgetedCost=1000, Id=701xx00000011nhAAA} //|DEBUG|Campaign:{Name=Campaign2, BudgetedCost=4000, Id=701xx00000011niAAA} //|DEBUG|{0, 1} //|DEBUG|{Campaign={ActualCost}}