Как сделать так, чтобы бот вк не мог кикать вышестоящую роль в беседах?

Бот выполняет роль чат-менеджера в беседах ВК. В боте есть роли "Модератор", "Главный модератор" и "Администратор", пользователь с ролью "Модератор" может исключить с беседы пользователей выше его роли (Главный модератор, администратор), также и пользователь с ролью "Главный модератор" может исключить другого пользователя выше его роли (Администратор). Нужно, чтобы пользователи с ролями не могли данной командой кикнуть с беседы другого пользователя с вышестоящей ролью.

@bot.on.chat_message(text = ["/kick <args>", "/kick"])
async def kick(message: Message, args: Optional[str] = None):
    cursor.execute(f"SELECT * FROM user WHERE vk_id = {message.from_id} AND chat_id = {message.peer_id}")
    info_user = cursor.fetchone()

    access_roles = ["Модератор", "Главный Модератор", "Администратор"]


    if info_user[4] not in access_roles:
        return


    if message.reply_message == None:
        user = args.split(' ')[0]
        args = args.replace(user, "")

        reason = args[1:]

        if reason == "":
            reason = "Не указана."

        if "[id" in user:
            user = int(user.split("|")[0].replace("[id", ""))


  if message.reply_message != None:
      user = message.reply_message.from_id

      reason = args

      if reason == "":
         reason = "Не указана."


await bot.api.messages.remove_chat_user(chat_id=message.peer_id - 2000000000, user_id=user)


await message.answer(f"[id{user}|Пользователь] был исключён из конференции.\n \nИсключил: [id{message.from_id}|{info_user[4]}]\n Причина: {reason}")

cursor.execute(f"DELETE FROM user WHERE vk_id = {user} AND chat_id = {message.peer_id}")
connection.commit()

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