Коренной недочёт (?) в Node System и его решение

Главные вкладки

Аватар пользователя Химический Али Химический Али 23 ноября 2009 в 16:04

Только сегодня впервые столкнулся с неприятной ситуацией. Если дать пользователям право создавать, редактировать и удалять свои материалы какого-то типа, он не получает возможности выставить при создании\правке материала дату создания и имя автора пока не будет иметь разрешение «administer nodes» (управлять материалами). Но если дать ему последнее разрешение, то он автоматически получает право кроить материалы и других авторов, что не всегда допустимо.

Казалось бы, очевидное право автора материала - выставить ему дату публикации, но нет, Друпал дает право устанавливать даты только пользователям с правами "администрирования нод" и не позволяет "из коробки" менять это поведение.

Беглый поиск по d.o показал, что проблема известна еще со времен ветки 4.х, однако до сих пор не решается средствами ядра. Решение было найдено в виде модуля Override Node Options, имеющего столь же долгую историю, что и баг. Он дополняет список разрешений необходимыми опциями. Качать отсюда: http://drupal.org/project/override_node_options

Слава модульной системе Друпала! Слава авторам модулей! Smile

Комментарии

Аватар пользователя T-34 T-34 23 ноября 2009 в 23:35

Это не баг... Подумайте сами, право на редактирование материалов не должно включать право редактировать какие-то метаданные этого материала. Иначе, например, юзер смог бы постоянно менять дату создания своей ноды, висящей на морде, на текущую, чтобы эта нода оставалась первой в списке. Это административная привилегия, так что в ядре все верно.
А модуль Override Node Options, как я понял, разделяет разрешение administer nodes на части, да еще и по типу контента. Это хорошо, если на сайте несколько различных административных ролей, а для обычных юзеров, IMHO, неприменимо.
В общем если вам пригодилось то хорошо, но в ядре это было бы лишним Smile

Аватар пользователя Химический Али Химический Али 24 ноября 2009 в 9:53

Посмотрим, например, на LiveJournal - пользователи свободно меняют дату записи, потому что это им нужно. В моем случае тоже нужно сделать так.

А то, какая нода оказывается на главной, должно настраиваться и другими средствами, не только по дате. В конце концов, администратор(программист) могут настроить вывод на главную самостоятельно и даже запретить его. Хотя может вы и правы. Однако я считаю, ядру не помешает гибкость в настрояйках поведения Smile Хорошо, что модули могут влиять на это.

Аватар пользователя stasroot stasroot 29 ноября 2010 в 0:03

Все таки чем мне нравится Drupal? так это своей расширяемостью... ! И упомянутый выше модуль мне очень даже пригодился в моем проекте, где для одного типа материала принципиально наличие возможности указать автора, а в другом типе указать время. Хорошо что есть такой модуль.