--- title: "system.user.addRole" description: "Adds a role to the specified user source." --- # system.user.addRole > Adds a role to the specified user source. This function is used in **Python Scripting**. ## Description Adds a role to the specified user source. When altering the Gateway System User Source, the [Allow User Admin](platform\security\gateway-general-security-settings\gateway-general-security-settings.md) setting must be enabled. ## Client Permission Restrictions [Permission Type](ignition-modules\vision\vision-project-properties\vision-project-properties.md#vision-permissions-properties): User Management Client access to this scripting function is blocked to users that do not meet the role/zone requirements for the above permission type. This function is unaffected when run in the Gateway scope. ## Syntax `system.user.addRole(userSource, role)` ### Parameters Type | Parameter | Description ------- | ------- | ------ String| `userSource` | The user source to add a role to. Blank will use the default user source. String| `role` | The role to add. Role must not be blank and must not already exist. ### Returns **UIResponse** - A [UIResponse](https://sdk.inductiveautomation.com/javadoc/ignition81/latest/com/inductiveautomation/ignition/common/messages/UIResponse.html) object with lists of warnings, errors, and info about the success or failure of the add. The contents of the lists are accessible from the getter methods. * `getWarns()` - Returns a list of warning messages that were encountered during the add. * `getErrors()` - Returns a list of error messages that were encountered during the add. * `getInfos()` - Returns a list of "info" messages that were encountered during the add. These messages represent normal logging events that occurred during the add, and can be useful when trying to visualize the events that lead up to a failure. ### Scope Gateway, Vision Client, Perspective Session ## Code Examples ```python title="Example #1" # This example adds a role "Operator" to the user source "MyUserSource". system.user.addRole("MyUserSource", "Operator") ```