Skip to content

Протечка ctx из фильтров #146

Description

@K1rL3s

Описание

Сейчас, даже если фильтр вернул False, все изменения, которые он внёс в ctx, остаются.

Пример

При объединении нескольких фильтров через AndFilter данные, добавленные в ctx уже прошедшими фильтрами, могут остаться в общем контексте, даже если следующий фильтр вернул False.

Пример: цепочка Command("start"), StateFilter(...) может записать ctx["command"], затем не пройти по состоянию, но следующий handler или router увидит command в ctx, хотя текущий набор фильтров не должен был примениться

Что делать

Либо обновляем общий ctx только если все фильтры прошли, либо оставляем как есть. Надо посмотреть, как сделано в аиограме

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingenhancementNew feature or request

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions