# Implied Groups

### Overview

During login, Launcher can look for certain characteristics associated with a user such as being part of a specific group or having certain attributes assigned to them. These are selected from the user’s session object and validated using regular expressions. If there is a match, Launcher will include the corresponding layout associated with the implied group name.

### User Guide

Implied Groups is a Launcher feature that creates layouts that users can access based on their session object. For example, you can create a layout that only contains links to applications that are used by a specific group of users. Or, you can create a layout that only contains information that is relevant to a specific location.

1. Define the group and criteria in the configuration.
2. Create a list of layouts with the same name as the group.
3. Specify the criteria by identifying the attribute to evaluate for the group.
4. When a user logs in, Launcher will check the user's session object against the criteria.
5. If the user's session object matches the criteria, the corresponding layout group will be added to the Launcher.

### Feature Configuration

To set up the Implied Groups feature for a particular device profile or device group, please follow the steps below:

#### Defining Implied Groups Based on Session Attributes

You can determine the groups that can be assigned to a user by checking the user's session object against specific criteria or conditions. An example configuration is shown below:

<pre class="language-json"><code class="lang-json">...
<strong>"impliedGroups" : [
</strong>    {
        "group" : "ContainsBLUE_or_Blue_Group",
        "criteria_OR" : [
            { "field" : "${session.groups}", "pattern" : ".*Blue.*|.*BLUE.*" }
        ]
    },  
    {
        "group" : "ContainsNumber_Group",
        "criteria_OR" : [
            { "field" : "${session.ex.passwordExpiration}", "pattern" : "[0-9]+" }
        ]
    },
    {
        "group" : "VTV_1133_Group",
        "criteria_AND" : [
            { "field" : "${session.groups}", "pattern" : ".*VTV.*" },
            { "field" : "${config.ex.siteId}", "pattern" : "1133" }
        ]
    },
    {
        "group" : "EndsWithManager_Group",
        "criteria_OR" : [
            { "field" : "${session.groups}", "pattern" : ".*Managers.*" }
        ]
    }
]
</code></pre>

Examples:

1. If a user's session object contains the group "Blue" or "BLUE", the "ContainsBLUE\_or\_Blue\_Group" layout group will be added to the Launcher.
2. If a user's session object contains a number in the "passwordExpiration" attribute, the "ContainsNumber\_Group" layout group will be added to the Launcher.
3. If a user's session object contains a group "VTV" and the user is in Site 1133, the "VTV\_1133\_Group" layout group will be added to the Launcher.
4. If a user's session object contains a group "Managers", the "EndsWithManager\_Group" layout group will be added to the Launcher.

#### Criteria Format

When defining the criteria for an implied group, you can use the `criteria_OR` and `criteria_AND` operators, and specify multiple criteria objects:

`criteria_OR` - will apply this group if any of the criteria objects match the patterns

`criteria_AND` - will apply this group only if all the criteria objects match the patterns

*

```json
    {
        "group" : "Pilot_VTV_And_Managers",
        // This group
        "criteria_AND" : [
            { "field" : "${session.groups}", "pattern" : ".*VTV.*" },
            { "field" : "${config.ex.siteName}", "pattern" : "Pilot" }
        ],
        "criteria_OR" : [
            { "field" : "${session.groups}", "pattern" : ".*Manager.*" }
        ]
    }
```

In the above example, the `Pilot_VTV_And_Managers` group gets applied when *either* of the conditions are true:

* If group contains `VTV` AND the current site is `Pilot`
* If group contains `Manager`

{% hint style="info" %}
Implied Groups was introduced in Launcher version 3.19.15.
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.bluefletch.com/bluefletch-enterprise/product-guides/bluefletch-launcher/configurable-layouts/implied-groups.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
