# 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.

<figure><img src="https://1373299915-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F8F6PrkNTG8Y34hADzKOL%2Fuploads%2Fgit-blob-ff5853a6eff9021d9de69f990af65f21c29fbf77%2Fimage.png?alt=media" alt=""><figcaption><p>App Security</p></figcaption></figure>

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

![](https://1373299915-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F8F6PrkNTG8Y34hADzKOL%2Fuploads%2Fgit-blob-149265f4c1a9962dbfa8fabf24b84b053bc1beab%2Fimage%20\(293\).png?alt=media)

## 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
    }
}
```
