Детальные групповые права доступа для анонимных и авторизованных пользователей

Судя по этим компонентам, currentUser?.groups в любом случае ненадёжен, поскольку он включает только видимые группы пользователя, а группы, влияющие на разрешения, могут не быть сериализованы здесь:

В ядре и плагинах мы обходим это, делая что-то подобное в сериализаторе текущего пользователя:

Но, очевидно, это недоступно для тематических компонентов/тем и их настроек.

Хм, не уверен, нужно будет подумать об этом. Если вы действительно имели в виду everyone, то это должно измениться на logged_in_users И anonymous_users. Это была основная проблема с everyone, как указано в исходном посте — некоторые люди понимали это как только зарегистрированных пользователей, другие — как зарегистрированных плюс анонимов, и это сильно зависело от ситуации.

Я выбрал интерпретацию «только зарегистрированные пользователи», потому что это безопаснее с точки зрения безопасности.

Нет, просто я не подумал о тематических компонентах/темах и их настройках и о том, как это изменение на них повлияет. Я был сосредоточен в основном на настройках сайта. Такие вещи особенно трудно найти, поскольку они даже не используют константу AUTO_GROUPS:

image

В любом случае, я придумаю несколько решений этих проблем и не переведу это изменение в стабильную версию, пока не разберусь с ними.

2 лайка