BackPrevious Page Next PageNext

Permission Logic on Group Objects

The relationship between a principal (user, role or group) and the members of a group object in a business view are classified into three sets:

A principal can have its own allowed/denied set and inherit the allowed/denied sets from its parent roles or groups. The parent allowed/denied sets will be calculated first and it is a recursive process.

The following are the detailed working logic:

Here is the priority order:

Denied Set > Allowed Set > Inherited Denied Set > Inherited Allowed Set > Unspecified (no matter whether it is allowed or denied).

See the diagram below:

Priority diagram

The final result of the members of a group object that a principal is allowed to access will be:

({Allowed Set} - {Denied Set}) U
(({Inherited Allowed Set from parent 1} U {Inherited Allowed Set from parent 2} U ...) - ({Inherited Denied Set from parent 1} U {Inherited Denied Set from parent 2} U ...)) U
{Unspecified if allowed}

The final set of the unspecified will be:

{All} - ({Allowed Set} U {Denied Set} U {Inherited Allowed Set from parent 1} U {Inherited Denied Set from parent 1} U {Inherited Allowed Set from parent 2} U ...)

For a user, the security in a business view would be like this:

{Accessible members of group1} And {Accessible members of group2} And...

Note: If all members are denied in a group object regardless of whether it is set to a principal directly or to the parents indirectly, no data will be retrieved from the group object to the principal.

We will take some examples to further demonstrate the relationship between a principal and the group object members.

Example 1

Here we use a simple sample to describe a case when a user belongs to multiple roles.

Assume there is a group object Order ID={1,2,3,4,5,6,7,8,9}, and we set business view security on this group object for a user (user1) and two roles (role1, role2) separately.

Belong to Allowed Set Denied Set
user1 role1, role2 1
role1 2,3 4,5
role2 3,4,5 1,2

The unspecified members will be {1,2,3,4,5,6,7,8,9} - ({1}U{2,3}U{4,5}U{3,4,5}U{1,2}) = {6,7,8,9}.

Assume we set the property "Allow Unspecified Members" to true, which means the unspecified members {6,7,8,9} are allowed to the user.

The final result that user1 can see when only this business view security is taking effect will be:

{1} U ( ({2,3}U{3,4,5}) - ({4,5}U{1,2}) ) U {6,7,8,9}={1,3,6,7,8,9}

Example 2

This example is more complex. It contains four properties of the business view security setting.

Assume there is a summary table with three group objects and a summary.

Region Country City Summary (the count of Order_ID)
APAC 41
Australia 20
Sydney 20
China 21
Beijing 9
Hongkong 4
Shanghai 8

And in below table, we list the business view security setting in the left cells, and the final results a user will get are listed in the right cells.

Business view security specified as below User will get such result
Group Allowed Set Denied Set Allow Unspecified Members
Region <empty> <empty> True
Country <empty> {China} True
City <empty> <empty> True
Region Country City Summary (count Order_ID)
APAC 20
Australia 20
Sydney 20
Group Allowed Set Denied Set Allow Unspecified Members
Region <empty> <empty> True
Country {China} <empty> False
City <empty> {Beijing,Shanghai} True
Region Country City Summary (count Order_ID)
APAC 4
China 4
Hongkong 4
Group Allowed Set Denied Set Allow Unspecified Members
Region <empty> <empty> True
Country {China} <empty> False
City <empty> {Beijing,Shanghai} False
Region Country City Summary (count Order_ID)
0

BackPrevious Page Next PageNext