# Roles

In Connectware, roles are a group of permissions that can be assigned to multiple users. This simplifies user management by allowing administrators to define standard permission sets based on job functions or responsibilities, rather than configuring permissions individually for each user.

## Roles View

The **Roles View** provides a comprehensive dashboard of all defined roles in your Connectware system and their associated permissions. This makes it easy to audit your access control structure and identify which permissions are assigned to each role.

* To open the **Users View**, click **User** and click the **Roles** tab.

<figure><img src="https://3996087881-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FsiMXhC4VDRVW2PvUoEn8%2Fuploads%2Fgit-blob-9256320a06547a2986240d6c92eb0b261fd77761%2Froles_overview.png?alt=media" alt=""><figcaption></figcaption></figure>

In this view, you can quickly identify:

* All available roles in the system.
* The specific permissions assigned to each role.
* Which roles might need modifications based on your security requirements.

## Creating New Roles and Permissions

Creating roles allows you to define permission sets once and apply it to multiple users.

1. In the **Roles View**, click **Add Role** to open the **Create Role** dialog.

<figure><img src="https://3996087881-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FsiMXhC4VDRVW2PvUoEn8%2Fuploads%2Fgit-blob-e4bda5b059d87aba2c85ce8262125439fe6e20d4%2Froles_add.png?alt=media" alt=""><figcaption></figcaption></figure>

2. Enter a name for the new role.
3. Optional: To assign a set of pre-defined permissions to the user, click the **Copy Permissions** field, select a permission, and click **Add**. You can repeat this step to assign multiple permission sets.
4. Optional: To assign individual permissions, click the **+** button to open the **Add Permission** dialog.
   * Select the permission type: **HTTP** for accessing the REST API using HTTP clients or **MQTT** for accessing MQTT topics on CybusMQ.
   * In the **Endpoint** field, enter the resource path, which follows MQTT topic conventions. The specified topic can be a single topic or a wildcard. HTTP permissions for the resource path follow an MQTT topic structure. This means that you can use wildcards (**#** and **+**) in valid expressions, and paths must start with a leading slash (**/**).
   * Select the access type: **read**, **write**, or **both**.
   * Click **Add** to add the permission.
5. Click **Create**. The dialog will close and the new role will be added to the overview table.

<figure><img src="https://3996087881-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FsiMXhC4VDRVW2PvUoEn8%2Fuploads%2Fgit-blob-aae51ee352cd6350d2261af089b603f8a7c76148%2Froles_add_dialog.png?alt=media" alt=""><figcaption></figcaption></figure>

## Changing Role Names

1. In the **Roles View**, click a role to open the **Edit Role** dialog.
2. In the **Edit Role** dialog, enter a new role name in the **Name** field.

<figure><img src="https://3996087881-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FsiMXhC4VDRVW2PvUoEn8%2Fuploads%2Fgit-blob-b1b66e2914a9f90a9791c3246796c796af19e514%2Froles_edit_change_name.png?alt=media" alt=""><figcaption></figcaption></figure>

3. To apply the changes, click **Update**. The dialog will close and the role name will be updated.

## Deleting Roles

1. In the **Roles View**, click the role that you want to delete to open the **Edit Role** dialog.
2. Click the **Delete** button in the top right of the **Edit Role** dialog.

<figure><img src="https://3996087881-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FsiMXhC4VDRVW2PvUoEn8%2Fuploads%2Fgit-blob-73adbb0c944558464579d8f9ae6db5ef5e4019c7%2Froles_edit_delete.png?alt=media" alt=""><figcaption></figcaption></figure>

3. Click **Delete** again to confirm. The user is deleted.

<figure><img src="https://3996087881-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FsiMXhC4VDRVW2PvUoEn8%2Fuploads%2Fgit-blob-718fdfb345d593be36c661b1c3b9844d5892bfba%2Froles_edit_delete_confirm.png?alt=media" alt=""><figcaption></figcaption></figure>
