# Role Based Access

## Apps Roles

When app authentication is enabled, you can define the role that a user must be a part of in order to access the dashboard. Roles are configured on the Settings \ Security page or from within the `roles.ps1` configuration file.

![](/files/-MHHneG0ZaR1Ptsm9XDb)

If a user attempts to visit an app that they do not have access to, they will be presented with a Not Authorized page.

![](/files/-MHHnvkjswhviT_e0bsn)

## Pages Roles

You can also show or hide pages based on roles. To define a role for a page, use the `-Role` parameter of `New-UDPage`. Only users of the specified role will have access to this page.

```powershell
New-UDPage -Role 'Administrators' -Content {
    New-UDTypography -Text 'Admins only'
}
```

## $Roles Variable

In addition to app and page roles, you can also check with roles a user is a part of by using the `$Roles` variable that is available within Apps. This variable contains an array of the roles that are assigned to the user.

For example, you could show the `Restart-Computer` button to only Administrators.

```powershell
if ($Roles -contains "Administrator") {
    New-UDButton -Text 'Restart Server' -OnClick {
        Restart-Computer
    }
}
```


---

# 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.powershelluniversal.com/v4-beta/userinterfaces/role-based-access.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.
