Python API wrapper for Rocket.Chat's REST API, enabling developers to programmatically interact with Rocket.Chat servers for chat automation, bot development, and integration purposes
—
Role management system for Rocket.Chat server administration. Provides functionality for creating, listing, and managing user roles with optional room-specific scope.
def roles_list(self, **kwargs):
"""
Get all roles in the system.
Returns:
requests.Response: List of all system roles
"""
def roles_get_users_in_role(self, role, **kwargs):
"""
Get users that belong to a specific role.
Parameters:
- role (str): Role name
- offset (int, optional): Number of items to skip
- count (int, optional): Number of items to return
Returns:
requests.Response: List of users in the role
"""
def roles_sync(self, updated_since):
"""
Get all roles updated after a given date.
Parameters:
- updated_since (str): ISO date string (e.g., '2023-01-01T00:00:00.000Z')
Returns:
requests.Response: Updated roles
"""def roles_create(self, name, **kwargs):
"""
Create a new role in the system.
Parameters:
- name (str): Role name
- scope (str, optional): Role scope ('Global' or 'Rooms')
- description (str, optional): Role description
Returns:
requests.Response: Role creation result
"""def roles_add_user_to_role(self, role_name, username, **kwargs):
"""
Assign a role to a user.
Parameters:
- role_name (str): Role name to assign
- username (str): Username to assign role to
- roomId (str, optional): Room ID for room-specific role assignment
Returns:
requests.Response: Role assignment result
"""
def roles_remove_user_from_role(self, role_name, username, **kwargs):
"""
Remove a role from a user.
Parameters:
- role_name (str): Role name to remove
- username (str): Username to remove role from
- roomId (str, optional): Room ID for room-specific role removal
Returns:
requests.Response: Role removal result
"""DefaultRoles = [
"admin", # Server administrator
"moderator", # Channel/room moderator
"owner", # Channel/room owner
"user", # Regular user
"bot", # Bot account
"app", # Application account
"guest", # Guest user
"anonymous", # Anonymous user
"livechat-agent", # LiveChat agent
"livechat-manager", # LiveChat manager
"leader" # Channel/room leader
]# List all roles
roles = rocket.roles_list()
print(roles.json())
# Create a new role
new_role = rocket.roles_create(
name='custom-moderator',
scope='Rooms',
description='Custom moderator role with limited permissions'
)
# Assign role to user
rocket.roles_add_user_to_role(
role_name='moderator',
username='john.doe'
)
# Assign room-specific role
rocket.roles_add_user_to_role(
role_name='owner',
username='alice.smith',
roomId='GENERAL'
)
# Remove role from user
rocket.roles_remove_user_from_role(
role_name='moderator',
username='john.doe'
)
# Get users in a role
moderators = rocket.roles_get_users_in_role('moderator')
print(f"Moderators: {moderators.json()}")
# Sync roles updated since date
from datetime import datetime, timedelta
yesterday = (datetime.now() - timedelta(days=1)).isoformat() + 'Z'
updated_roles = rocket.roles_sync(yesterday)Install with Tessl CLI
npx tessl i tessl/pypi-rocketchat-a-p-i