Skip to main content

Access policy expressions

Manage the conditions of an access policy rule

When editing an access policy, you can add any number of expressions to the current rule. Each expression defines a condition that items of the targeted design/interface must fulfil to be accessible to the rule's user groups.

Depending on how the rule is configured, All or Any of the expressions must be fulfilled for access to be granted!

To add an expression to the current rule, select Add expression. Choose an expression type from the list and then configure its columns as needed. To delete an existing expression, select its button.

Conditional expressions

Grant access to items by checking their attribute values and comparing them against supplied values.

  Has Access

This conditional expression checks if the current user has access to the feature object referenced by a Text attribute on the current item, e.g. basemap, card, design, interface, layer or workflow.

  • Current user:

    • Current user - the ID of the user trying to access the item.
  • Object - choose a Text attribute on the design/interface targeted by the access policy. Only attributes that are tagged with FeatureCode will be listed.

An example Has Access expression
  Yes/No

This conditional expression compares the value of a Yes/No attribute on the current item against the supplied boolean value.

  • Attribute - choose a Yes/No attribute on the design/interface targeted by the access policy.

  • Condition:

    • Equals - is the attribute value the same as the supplied value?
  • Value - select the checkbox to switch between Yes and No.

An example Yes/No expression
  Geometry

This conditional expression compares the value of a Geometry attribute on the current item against the supplied geometry value.

  • Attribute - choose a Geometry attribute on the design/interface targeted by the access policy.

  • Condition - choose one of the following:

    • Intersects - does the attribute's geometry overlap any part of the supplied geometry?

    • Within - is the attribute's geometry located entirely within the supplied geometry?

  • Value - select Geometry * to open the Geometry Editor, where you can specify a geometry value by drawing points, lines or polygons. Alternatively, select Location of interest to choose a predefined geometry value.

An example Geometry expression
The Geometry value window
  Link

This conditional expression compares the contents of a Link attribute on the current item against one or more supplied item IDs.

  • Attribute - choose a Link attribute on the design/interface targeted by the access policy. Alternatively, choose Current item to compare the item's own ID instead!

  • Condition:

    • Intersect - are any of the supplied item IDs stored in the Link attribute?
  • Value - use the item picker to select one or more items of the design/interface that the Link attribute points to. Alternatively, if comparing the Current item, choose from items of the same design/interface as that item.

An example Link expression
  Text

This conditional expression compares the value of a Text attribute on the current item against one or more supplied text values.

  • Attribute - choose a Text attribute on the design/interface targeted by the access policy.

  • Condition:

    • Equals - is the attribute value the same as any of the supplied text values?
  • Value - enter a text value and select Add. Repeat as needed and then select Save.

An example Text expression
A multi-value input window containing three text values
  User

This conditional expression compares the contents of a Link attribute on the current item against the current user's ID.

  • Attribute - choose a Link attribute on the design/interface targeted by the access policy. Only attributes that point to the Users design will be listed.

  • Condition:

    • Equals - is the current user's ID stored in the Link attribute?
  • Value:

    • Current user - the ID of the user trying to access the item.
An example User expression

Relational expressions

Fetch items related to the current item and evaluate them with a conditional expression, e.g. the child tasks of a project, the parent asset of a defect.

  Child

This relational expression performs a single "hop" to any child items stored in a Link attribute on the current item. A conditional expression is then evaluated against each of those child items.

  • Any children linked via - choose a Link attribute on the design/interface targeted by the access policy.

  • Add a rule to this child - choose a conditional expression type and then configure its columns as needed. If this expression is fulfilled by any child item, the relational expression is also fulfilled.

An example Child expression
  Parent

This relational expression performs a single "hop" to any parent items that reference the current item via one of their Link attributes. A conditional expression is then evaluated against each of those parent items.

  • Any parents linked via - fill in the following fields:

    • Parent design or interface * - choose one from the list. Only compatible designs/interfaces are listed (ones with a Link attribute pointing to the design/interface targeted by the access policy).

    • Attribute * - choose a Link attribute on the chosen design/interface.

  • Add a rule to this parent - choose a conditional expression type and then configure its columns as needed. If this expression is fulfilled by any parent item, the relational expression is also fulfilled.

An example Parent expression