Multiple Access Definitions Per UserThe
For example, this access definition can be defined: policy "VPLM_SMB" state "SHARED" user "VPLMProjectLeader" read,show,checkout,promote,demote,changeowner,unlock, toconnect,todisconnect,revise filter "(organization.ancestor match context.user.assignment[$CHECKEDUSER].org) && (($ACCESS matchlist 'read,show,checkout' ',') || (project == context.user.assignment[$CHECKEDUSER].project))" This filters specifies both organization and collaborative space (project) criteria for the VPLMProjectLeader user (one of the baseline behavior access roles). If a user meets both sets of criteria, then that user has access to the content. For more information, see Organization and Project-Based Access. This pseudocode shows filter " (organization critieria) AND ( (access criteria) OR (project criteria) )" To have access to the content, the user must meet the organization criteria, and either the access criteria or the project criteria. In this filter
The
The
The access definition can simplify the filter using an organization matching option as follows: policy "VPLM_SMB" state "SHARED" user "VPLMProjectLeader" read,show,checkout,promote,demote,changeowner,unlock,toconnect,todisconnect,revise ancestor org filter "($ACCESS matchlist 'read,show,checkout' ',') || (project == context.user.assignment[$CHECKEDUSER].project)" For more information about matching options, see About Organization and Project-Based Access. Because the filtering on the project of the content depends on the
access being checked, you cannot use the
policy "VPLM_SMB" state "SHARED" user "VPLMProjectLeader" key "read" read,show,checkout descendant org user "VPLMProjectLeader" key "others" descendant org single project promote,demote,changeowner,unlock,toconnect,todisconnect,revise There are now two separate access definitions for the same user
This method eliminates the remaining filter expression: $ACCESS matchlist 'read,show,checkout' ',') || (project == context.user.assignment[$CHECKEDUSER].project) The
Mono-Credentials EnforcementThe
This keyword lets you specify mono-context access definitions compatible with the organization and project matching options and multiple access definition per user as described in Multiple Access Definitions Per User. For example, the following access definition: policy "VPLM_SMB" state "WAITAPP" user "VPLMCreator" read,show,changeowner,checkout,toconnect,todisconnect filter "(organization.ancestor match context.role[$CHECKEDUSER].org) && (project == context.role[$CHECKEDUSER].project)" Can be implemented as follows: policy "VPLM_SMB" state "WAITAPP" user "VPLMCreator" read,show,changeowner,checkout,toconnect,todisconnect descendant org single project |