CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/pypi-rocketchat-a-p-i

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

Pending
Overview
Eval results
Files

roles.mddocs/

Roles

Role management system for Rocket.Chat server administration. Provides functionality for creating, listing, and managing user roles with optional room-specific scope.

Capabilities

Role Information

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
    """

Role Creation

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
    """

User-Role Assignment

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
    """

Common Rocket.Chat Roles

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
]

Usage Examples

# 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

docs

administration.md

assets.md

channels.md

chat.md

direct-messages.md

groups.md

index.md

integrations.md

livechat.md

miscellaneous.md

permissions.md

roles.md

rooms.md

settings.md

statistics.md

subscriptions.md

teams.md

users.md

tile.json