Так, я сделал первую пробную реализацию данной функции. На текущий момент, она реализована с учетом некоторых ограничений (буду я их убирать или нет, пока не решил):
- Доступно 3 возможных действия: публикация, снятие с публикации и удаление - больше не вижу смысла делать. Как правило такой функционал нужен, чтобы убить спамовый комментарий, или снять с публикации комментарий, который вам показался не очень корректным.
- Действия доступны только в уведомлениях администратору и в уведомлениях функции "Сообщить администратору". Во всех письмах, отправляемых на указанные в параметрах компонента e-mail адреса, ссылки на данные действия полностью идентичны - т.е. никакого разграничения прав нет. Я исхожу из предположения, что в этом списке, который администратор сайта вводит вручную, будут только те люди, которым действительно положено получать такие уведомления, и, следовательно, им можно и выполнять указанные действия.
- При переходе по ссылке из письма проверяется только совпадение значения hash, переданного в ссылке, с рассчитанным внутри компонента - если совпадают, действие выполняется. Если нет - идет простая переадресация на главную страницу сайта.
Таким образом, ссылки на функции быстрой модерации присутствуют только в шаблонах писем, которые являются административными уведомлениями. Если код этих ссылок вставить в шаблон обычных уведомлений, которые рассылаются обычным пользователям (подписанным на уведомления о новых комментариях), то они тоже смогут удалять эти сообщения. Это естественно неправильно, но, если этого специально не сделать (шаловливыми руками), то ничего не случится.
Почему я не делал проверки на права конкретного пользователя? Ну во-первых это несколько усложнило бы логику, а во-вторых, это требовало бы, чтобы пользователь, переходящий по ссылке быстрой модерации, был уже авторизован на сайте - ведь иначе проверка его идентификатора с переданным в ссылке не прошла бы. А если мы требуем, чтобы он был уже авторизован, то теряется смысл этой быстрой модерации - ведь если пользователь авторизован, то эти ссылки не нужны - можно просто перейти на страницу с комментарием и нажать кнопочку под списком.
Пока, в тестовой версии, данная функция включена. Но в публичной версии компонента я планирую эту функцию выключить по умолчанию, чтобы ее включали только те пользователи, которые точно знают, зачем она нужна, и как ей пользоваться.
Если есть желающие потестировать - стучитесь в приват, дам погонять.