Licenses are inherited. A group that is a member of a parent group will automatically inherit all the enabled licenses from that parent group, and so on further up through the group hierarchy. For an individual user, the enabled licenses are the grand total of all the groups it is a member of, both explicitly and via inheritance. The basic rule to remember is that a user will get access to all the features that are enabled for any of the groups they are a member of. If a certain feature is enabled in one group and disabled in another group, a user that is a member of both groups will get the feature. Once a license is inherited, there is no way to disable it from another group as licenses can only be cumulatively added by inheritance, not removed.
Preferences behave differently. A group that is a member of a parent group will automatically inherit all the preferences from that parent group, and so on further up through the group hierarchy, unless the preference is explicitly set on that group in which case the explicitly set preference will be used. This is unlike License inheritance where it is only additive - if any group has the license enabled then the user has the license enabled. Additionally, if the user has explicitly set any preferences in the Tools > Options menu then that will take precedence over any group-defined preferences.
The only exception to the alphabetical priority of equally weighted groups is if a 'Primary Group' has been defined for a group, in which case that Primary Group will take precedence over any other equally weighted groups. See 'Setting Primary Group' in the Administration Manager User's Guide.
For example, consider the following group structure:
- Parent Group 1
- Child Group 1
- Child Group 2
- Parent Group 2
Scenario 1:User1 is a member of "Child Group 1" only. "Child Group 1" does not have Preference A explicitly set (i.e., it is empty/null). "Parent Group 1" has the Preference A explicitly set.
- Result: User1 will inherit the preference setting from "Parent Group 1".
- Explanation: Since "Child Group 1" does not have the preference set it will use the preference from the closest inherited group, which is "Parent Group 1".
Scenario 2:User1 is a member of "Child Group 1" only. "Child Group 1" has Preference A explicitly set. "Parent Group 1" has the Preference A explicitly set.
- Result: User1 will use the preference setting from "Child Group 1".
- Explanation: The explicitly set preference from "Child Group 1" takes precedence over the inherited preference from "Parent Group".
Scenario 3:User1 is a member of all four groups directly. All four groups have a different setting for Preference A explicitly specified (i.e., it is not empty/null). One example where this scenario is seen is in the definition of the "TIBCO Spotfire Statistics Services > Statistics Services > TIBCO Enterprise Runtime for R URL" preference.
- Result: User1 will use the preference setting from "Child Group 1"
- Explanation: "Child Group 1" gets precedence over "Child Group 2", "Parent Group 1", and "Parent Group 2" due to alphabetical order. This is because User1 is explicitly in each group directly, meaning each have equal weight so the alphabetical order of the group is used to determine which precedence is used.
Scenario 4:User1 is a member of "Child Group 1" only. "Child Group 1" does not have Preference A explicitly set. "Parent Group 1" has the Preference A explicitly set. "Parent Group 2" has the Preference A explicitly set to a different value.
- Result: User1 will use the preference setting from "Parent Group 1".
- Explanation: User1 inherits the preferences from "Parent Group 1" and "Parent Group 2" equally. Given "Parent Group 1" is first alphabetically, it takes precedence.