Permission Conflicts and Collision Behavior

Policy users can be assigned to multiple roles with different data element permission settings. In this scenario, the resultant access settings applicable for that user are the least restrictive permissions derived from the data element - parent role association.

Masking Rules for Users in Multiple Roles

If the mask settings, which are applied along with the permission settings, for users in multiple roles result in a conflict, then the resultant output differs.

Consider a scenario, where user U1 with a policy P1, associated with roles R1, R2, and R3 and connected with the data element DE1 containing different masks (Left, Right) and output formats, then the resultant output is applicable as per the following table.

RoleUserData ElementOutput FormatMask SettingsResultant Output
R1U1DE1MASKLeft: 1, Right: 2Left: 1, Right: 2
R1U1DE1MASKLeft: 1, Right: 2Left: 1, Right: 2
R2U1DE1MASKLeft: 1, Right: 2
R1U1DE1MASKLeft: 1, Right: 2There is conflict in the mask settings (Left, Right) and thus, the Unprotect access is revoked with NULL as the output.
R2U1DE1MASKLeft: 0, Right: 5
R1U1DE1MASKLeft: 1, Right: 2 with mask character ‘*’There is conflict in the mask character settings and thus, the Unprotect access is revoked with NULL as the output.
R2U1DE1MASKLeft: 1, Right: 2 with mask character ‘/’
R1U1DE1MASKLeft: 1, Right: 2There is conflict in the mask settings (Left, Right) and thus, the Unprotect access is revoked with NULL as the output.
R2U1DE1MASKLeft: 1, Right: 2
R3U1DE1MASKLeft: 0, Right: 5
R1U1DE1MASKLeft: 1, Right: 1 with masked modeThere is conflict in the mask settings and thus, the Unprotect access is revoked with NULL as the output.
For example:
If the value 12345 is masked with Left: 1, Right: 1 settings in masked mode, then it results in *234*.
If the value 12345 is masked with Left: 1, Right: 1 settings in clear mode, then it results in 1***5.
As the resultant values are conflicting, the Unprotect access is revoked with NULL as the output.
R2U1DE1MASKLeft: 1, Right: 1 with clear mode
R1U1DE1MASKLeft: 1, Right: 2There is conflict in the output formats. The resultant output is most permissive, which is CLEAR.
R2U1DE1CLEAR 
R1U1DE1MASKLeft: 1, Right: 2There is conflict in the output formats due to conflicting MASK settings. However, with the CLEAR setting applicable in the order of access as per the role R3, the resultant output is most permissive. In this case, it is CLEAR.
R2U1DE2MASKLeft: 0, Right: 5
R3U1DE3CLEAR 

A data element-role connection with disabled permission for unprotect operation results in a NULL value, by default, and can be set to other no-access values, such as Exception or Protected value.

The following table explains how no-access values work with different output formats for users in multiple roles.

Sr. No.RoleUserData ElementNo Access OperationOutput FormatMask SettingsResultant Output
1R1U1DE1 MASKLeft: 1, Right: 2There is conflict in the output formats. If one of the roles has access, then the output format is used. The resultant output is most permissive, which is MASK.
R2U1DE1NULL  
2R1U1DE1 MASKLeft: 1, Right: 2
R2U1DE1Protected  
3R1U1DE1 MASKLeft: 1, Right: 2
R2U1DE1Exception  
4R1U1DE1 CLEAR If one of the roles has access, then the output format is used. The resultant output is most permissive, which is CLEAR.
R2U1DE1NULL  
5R1U1DE1 CLEAR 
R2U1DE1Protected  
6R1U1DE1 CLEAR 
R2U1DE1Exception  

No Access Permissions

If the Unprotect access permission is not assigned to a user, then either the NULL value or noaccess permission, such as, Protected or Exception value is returned. The returned value is based on the permission settings for a role or a data element. If a user is assigned to multiple roles with different permission settings for the data element, then the following no-access permission on the protector is applicable.

No Access Permission 1No Access Permission 2Resultant Permission on the Protector
ProtectedNULLProtected
ProtectedEXCEPTIONProtected
ProtectedMaskMask
ProtectedClearClear
NULLEXCEPTIONEXCEPTION
NULLMaskMask
NULLClearClear
EXCEPTIONMaskMask
EXCEPTIONClearClear

Inheriting Permissions for Users in Multiple Policies and Roles

This section describes how a user in multiple policies and roles inherits permissions for a data element.

Last modified January 30, 2025