Хочу давать определенным пользователям удалять посты (чужие) в определенной теме.
Допустим все необходимые проверки сделаны и вопрос остается в обработке данного случая.
Есть такая переменная force_delete_allowed (ивент core.viewtopic_modify_post_action_conditions в viewtopic.php)
После ее установки во viewtopic начинают отображаться ссылки/кнопки на удаление, ок.
Теперь дело за тем, чтобы обработать эту ситуацию в posting.php - тут появились вопросы.
Например, для аналогичной force_edit_allowed во viewtopic есть такая же переменная в ивенте core.posting_modify_cannot_edit_conditions в posting.php.
А как обработать удаление
Как вижу, можно изменить $is_authed в ивенте core.modify_posting_auth (само собой, предварительно делаем нужные проверки)
Но далее это все заканчивается выполнением функции phpbb_handle_post_delete() из functions_posting.php, в которой опять происходит проверка прав и соответственно удаление не происходит, а влияния на эту ф-цию никакого нет, т.к. ивентов в ней нет.
В таком случае, непонятно, какой толк от force_delete_allowed вообще?
Или не туда смотрю?
Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.
Удаление постов и force_delete_allowed
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB3.1.x/3.3.x | FAQ | Как задавать вопросы | Как устанавливать расширения
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ).
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB3.1.x/3.3.x | FAQ | Как задавать вопросы | Как устанавливать расширения
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ).
-
- phpBB Guru
- Сообщения: 16396
- Стаж: 18 лет
- Откуда: Красноярск
- Благодарил (а): 524 раза
- Поблагодарили: 1750 раз
Re: Удаление постов и force_delete_allowed
Andex, видимо, так оно и есть. Данная фича не доделана. Создал тикет https://tracker.phpbb.com/browse/PHPBB3-15186
Попробуем исправить.
Отправлено спустя 1 час 1 минуту 49 секунд:
https://github.com/phpbb/phpbb/pull/4804
Попробуем исправить.
Отправлено спустя 1 час 1 минуту 49 секунд:
https://github.com/phpbb/phpbb/pull/4804
Re: Удаление постов и force_delete_allowed
rxu, спасибо, попробуем проверить
Правильно ли я понял, что $is_authed нужно продолжать использовать?
Правильно ли я понял, что $is_authed нужно продолжать использовать?
-
- phpBB Guru
- Сообщения: 16396
- Стаж: 18 лет
- Откуда: Красноярск
- Благодарил (а): 524 раза
- Поблагодарили: 1750 раз
Re: Удаление постов и force_delete_allowed
В зависимости от контекста решаемой задачи, если без этого никак - то надо.
Re: Удаление постов и force_delete_allowed
rxu, ну, ее придется использовать в любом случае, т.к. если !$is_authed то до выполнения функции phpbb_handle_post_delete() дело просто не дойдет, а соответственно и до удаления поста.
Кроме того ,есть еще один нюанс, установив is_authed в true - все работает, но как раз перед ивентом modify_posting_auth, для режима soft_delete переменная mode сбрасывается в просто delete если нет соответствующих прав - т.е. был у нас режим soft_delete, стал delete. И, само собой, установка $is_authed не вернет soft_delete.
Что можно сделать в данном случае:
это внаглую изменить режим в этом же ивенте (modify_posting_auth), т.е. вернуть soft_delete, но там правда пишут, что Extensions should only change the error and is_authed variables.
или
в добавленном ивенте handle_post_delete_conditions изменить состояние флага is_soft предварительно проверив состояние request-переменных mode и delete_permanent
Кроме того ,есть еще один нюанс, установив is_authed в true - все работает, но как раз перед ивентом modify_posting_auth, для режима soft_delete переменная mode сбрасывается в просто delete если нет соответствующих прав - т.е. был у нас режим soft_delete, стал delete. И, само собой, установка $is_authed не вернет soft_delete.
Что можно сделать в данном случае:
это внаглую изменить режим в этом же ивенте (modify_posting_auth), т.е. вернуть soft_delete, но там правда пишут, что Extensions should only change the error and is_authed variables.
или
в добавленном ивенте handle_post_delete_conditions изменить состояние флага is_soft предварительно проверив состояние request-переменных mode и delete_permanent
Re: Удаление постов и force_delete_allowed
rxu, Да, вроде бы работает нормально, проблем не увидел. Но у меня пока нет массового использования расширения, которое использует новоиспеченный ивент, но похоже, что все ок, да и по логике все работает как надо. Если вдруг что вылезет - сообщу.
Спасибо!
Спасибо!