Как запретить всем кроме админа редактировать старые ноды?
Допустим чтобы через месяц после даты node_create невозможно было штатным способом внести исправления в материал.
Варианта пока два вижу:
1. Через определенный срок изменять тип материала на такой же по структуре, но у которого стоит запрет на редактирование
2. Использование хука при редактировании - если user НЕ admin и node_create > 1m, то выдать запрет.
Может кто с хуком подсобить или с идеей как реализовать этот запрет?
Комментарии
comment edited модуль
workflow, workflow_access, rules, cron
С комментариями comment_edited может помочь.
Меня же интересует запрет на редактирование материала - напр. записи в блоге.
workflow это хорошо. Вот кстати хорошее практическое введение в workflow
Но возможно проще сделать хук в template.php ?
Каким образом вы собираетесь контролировать доступ к материалам из слоя темизации?
Cлабо знаком с api.
Тогда по другому - может написать малюсенький модуль, который перехватывает действие по сохранению ноды и проверяет админ ли это и сколько уже времени прошло с node_creation. Мне кажется вполне востребованная вещь должна быть.
hook_nodeapi
Где-то модуль был, который проверяет не редактирует ли кто другой эту же ноду, и выдавал соответствующее сообщение.
Может в нем посмотреть как сделано?
semasping, спасибо. content_lock хорош для старта.
Я бы смотрел в сторону [module=content_access] и вообще, прежде чем задавать вопрос, надо тщательно прошерстить весь список по access-модулям.
вопрос так и не закрылся??? я к тому что если например юзера переклинуло и он захотел бы потом удлить все свои материалы он не мог бы это сделать так как редактировать СВОЕ можно только в первые например 10 дней жизни ноды.
Как обычно валишь всё в кучу.
Во-первых, такой функционал как раз и нужен для того чтобы юзеров "вдруг не переклинило", а во-вторых, удаление и редактирование - разные права. Первое можно разрешить сразу и навсегда. Или запретить.
Так редактировать же например в первый месяц жизни можно, прошло 30 дней все автор с тоже ролью не может. Так удалить стереть всю инфу не важно. Восстанавливать из резерва не айс (модуль есть такой). Вот и интересно как сделать так чтобы месяц можно потом нельзя ничего. Статья в архиве только определенная роль (модератор) может править к примеру.
Во втором коммента дали ответ.
Если своим модулем, то hook_menu_alter и/или hook_node_api.
Т.е. через месяц переводим в другое состояние ноду и по состоянию смотрим допускать кого то или нет типа этого? а у рулесов какое участие в этой связке?
Основное. Собственно rules проверяет месяц и меняет права.