Перейти к содержанию

Permissions

Chat permissions for members.

ChatPermissions

Control what regular members can do in a chat.

from aiomax.types import ChatPermissions

# Restrictive permissions (read-only)
readonly = ChatPermissions(
    can_send_messages=False,
    can_send_media_messages=False,
    can_send_polls=False,
    can_send_other_messages=False,
    can_add_web_page_previews=False,
    can_change_info=False,
    can_invite_users=False,
    can_pin_messages=False
)

# Full permissions
full = ChatPermissions(
    can_send_messages=True,
    can_send_media_messages=True,
    can_send_polls=True,
    can_send_other_messages=True,
    can_add_web_page_previews=True,
    can_change_info=False,  # Usually false for regular members
    can_invite_users=True,
    can_pin_messages=False  # Usually false for regular members
)

Permission Fields

Field Description
can_send_messages Send text messages
can_send_media_messages Send photos, videos, etc.
can_send_polls Send polls
can_send_other_messages Send stickers, GIFs, etc.
can_add_web_page_previews Add link previews
can_change_info Change chat info (title, photo, etc.)
can_invite_users Invite new members
can_pin_messages Pin messages

Applying Permissions

Mute a Member

from aiomax.types import ChatPermissions

await bot.restrict_chat_member(
    chat_id=chat_id,
    user_id=user_id,
    permissions=ChatPermissions(
        can_send_messages=False,
        can_send_media_messages=False,
        can_send_other_messages=False,
        can_add_web_page_previews=False
    ),
    until_date=3600  # 1 hour
)

Unmute a Member

from aiomax.types import ChatPermissions

await bot.restrict_chat_member(
    chat_id=chat_id,
    user_id=user_id,
    permissions=ChatPermissions(
        can_send_messages=True,
        can_send_media_messages=True,
        can_send_other_messages=True,
        can_add_web_page_previews=True
    )
)

Set Default Chat Permissions

from aiomax.types import ChatPermissions

await bot.set_chat_permissions(
    chat_id=chat_id,
    permissions=ChatPermissions(
        can_send_messages=True,
        can_send_media_messages=True,
        can_send_polls=True,
        can_send_other_messages=True,
        can_add_web_page_previews=True,
        can_change_info=False,
        can_invite_users=True,
        can_pin_messages=False
    )
)

Administrator Rights

Separate from member permissions, admins have additional rights:

await bot.promote_chat_member(
    chat_id=chat_id,
    user_id=user_id,
    can_delete_messages=True,
    can_restrict_members=True,
    can_promote_members=False,
    can_change_info=False,
    can_invite_users=True,
    can_pin_messages=True
)

Checking Permissions

member = await bot.get_chat_member(chat_id, user_id)

if not member.can_send_messages:
    print("User is muted")

if member.can_restrict_members:
    print("User can restrict others")

Common Permission Presets

from aiomax.types import ChatPermissions

# Read-only mode
READONLY = ChatPermissions(
    can_send_messages=False,
    can_send_media_messages=False,
    can_send_other_messages=False,
    can_add_web_page_previews=False
)

# No media (text only)
TEXT_ONLY = ChatPermissions(
    can_send_messages=True,
    can_send_media_messages=False,
    can_send_other_messages=False,
    can_add_web_page_previews=True
)

# Standard member
MEMBER = ChatPermissions(
    can_send_messages=True,
    can_send_media_messages=True,
    can_send_polls=True,
    can_send_other_messages=True,
    can_add_web_page_previews=True,
    can_invite_users=True
)

See Also