AgileApps Support Wiki Pre Release

Difference between revisions of "Custom Access Criteria"

From AgileApps Support Wiki
imported>Aeric
imported>Aeric
Line 20: Line 20:


===Inventory Example===
===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.  
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.
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:
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 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
:*On a ''view'' action (View a record or View a List of records), display the records

Revision as of 01:24, 13 May 2014

GearIcon.png > 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):

  • Add
  • Update
  • Delete
  • List View - defines a typical View
  • Record View - displays a single Record

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

Template:TenantFeatures

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

Lock-tiny.gif

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:

  1. Go to GearIcon.png > Objects > {object} > Object Properties
  2. Click [Edit]
  3. In the Access Control section, choose one of the following options:
    Role Based Permissions
    Default
    Custom Access Criteria
    • If selected, Role Based Access Control is not enforced.
    • The "Criteria Builder" appears.
  4. 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:
  • 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.