Custom Access Criteria
> Objects > {object} > Object Properties > [Edit] > Access Control > Custom Access Criteria
Custom Access Criteria lets you specify who can access/update/delete individual records, based on the data in the record, characteristics of the current user, and any other available information.
About Custom Access Criteria
Custom Access Criteria can be used in place of the standard Data Access Permissions. Custom Access Criteria defines a set of expressions, one for each action that can be taken on a record (view, delete, create, update):
For each action, the Formula Builder is used to create an expression, using characteristics of the logged in User, field values, comparison operators, and Formula Functions. When the expression evaluates to true for a given user, that user has access to the record and can perform the action.
- Learn more: Access Controls
Payroll Example
Records with a salary in excess of a certain amount can be made visible only to users in designated roles.
Inventory Example
- In an inventory management system, all records in the Inventory Object are visible to everyone (all Users). However, the operational policy states that only users with a valid Cost center code for the Purchasing Department can Add, Update, or Delete Inventory records.
- Although it is possible to design access controls based on standard Data Access Permissions, it could become a recurring, complex task; because users and teams are dynamic and change frequently, role- and team-based controls must be updated as the business structure evolves.
- A better solution is to add a Custom Access Criteria, which would act as follows:
- On an add, update or delete action for any inventory record, verify that the user record contains a valid Cost center code from the Purchasing department, then display the records
- On a view action (View a record or View a List of records), display the records
Users that have the Customize Objects permission can select Custom Access Criteria and build Access Control rules.
Add Custom Access Criteria
To add or edit Custom Access Criteria:
- Go to > Objects > {object} > Object Properties
- Click [Edit]
- In the Access Control section, choose one of the following options:
- Role Based Permissions
- Default
- Enforces Role- and Team-based access control (Data Access Permissions)
- Custom Access Criteria
-
- If selected, Role Based Access Control is not enforced.
- The "Criteria Builder" appears.
- In the Custom Access Criteria Builder:
- Click the Edit link for each action a user can take.
- Add custom access criteria
- Owner and Creator fields are available as criteria, where Owner is the Record Owner and Creator is the Record Creator.
- Owner and Creator fields are not available in List View or Record View Actions.
- Click the [Check Syntax] button to verify that the formula is valid and returns a Boolean value (i.e. True or False)
- Learn more: Formula Expressions
About Building Custom Access Criteria
Considerations for building Custom Access Criteria:
- If the Custom Access Criteria option is enabled, then the Data Access Permissions are not enforced by default
- If the Custom Access Criteria is enabled and the action fields are empty, then all users have access to all records for all available actions
- Fields available to build criteria are:
- Fields in the Object
- Rollup Summary Fields
- Fields in the Users Object, including custom fields
- For Add and Update actions, the formula is evaluated using the new field values (i.e., values that are part of the add/update action, not the field values in the database prior to the action)
About Importing Data
When importing data into an object where Custom Access Criteria rules are applied, no validations are performed at this time. This means that any data can be imported, regardless of the Custom Access Criteria rules.