Реализация проверки принадлежности юзера к админам. aiogram

есть метод getchatadministrators, как правильно сравнивать id пользователя с id из этого метода, чтобы определять администратор ли он? и какие ещё есть способы реализации данной задачи без использования БД. нужно просто выделить список админов супергруппы(группы) и из него сравнить id пользователя использующего команду, например, /ban, со списком айдишников админов чата. такой вот код написал

@router3.message(Command('ban'))
async def ban_command(message: Message):
    admins = await bot.get_chat_administrators(chat_id=message.chat.id)
    if message.from_user.id in admins:
        await bot.ban_chat_member(user_id=message.reply_to_message.from_user.id)
    else:
        await message.answer("нет прав")

Ответы (1 шт):

Автор решения: Medvedev

Для решения вам достаточно вывести в print значение admins что бы понять как правильно получить нужные данные.

В данном случае await bot.get_chat_administrators(chat_id=message.chat.id) будет возвращать список вида:

[
    ChatMemberOwner(
        status=ChatMemberStatus.CREATOR,
        user=User(
            id=user_id,
            is_bot=False,
            first_name=first_name,
            last_name=last_name,
            username=username,
            language_code='ru', 
            is_premium=None, 
            added_to_attachment_menu=None, 
            can_join_groups=None, 
            can_read_all_group_messages=None, 
            supports_inline_queries=None), 
            is_anonymous=False, 
            custom_title=None
        ),
    ),
]

То есть что бы получить id администраторов для каждого чата нужно перебрать этот список, извлечь id и засунуть в новый список

Либо так:

admin_list = []
for member in admins:
    new_list.append(member.user.id)

Либо в одну строку:

admin_list = [member.user.id for member in admins]

И в условии проверять уже message.from_user.id в admin_list

→ Ссылка