Разрешить пользователям редактировать ноды админа

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

Аватар пользователя Евгений Колосов Евгений Колосов 24 октября 2007 в 15:04

Здравствуйте!
При разработке drupal-сайта столкнулся с неожиданной проблемой, которая выглядит как особенность или фича.

Сайт - электронное СМИ, имеющее ряд журналистов и несколько редакторов. Редакторы должны допускать до публикации статьи журналистов, а также резать их творчество ножницами цензуры. Я создал роли "журналист" и "редактор", первые имеет право добавлять материал, а вторые - еще и редактировать. После чего вошел под редакторской учетной записью и попробовал изменить опубликованную ранее статью. Доступ был запрещен, и так - несколько раз. Опытным путем вычислил, что редактор имеет право на вмешательство только в материалы других пользователей, но никак не root'а (первого пользователя-админа). Конечно, админ всегда прав, но нужно как-нибудь дать редакторам и его цензурить... Вариант "создать еще одного пользователя, чтобы с него писал админ" не проходит((( Изменение имени пользователя при публикации тоже - видимо, скрипт смотрит не на имя, а на что-то еще, и любой материал, оставленный админом, остается "мертвым" - недоступным для работы редактора. Предвидя вопрос - таблицу прав доступа я обновлял неоднократно.

Это нужно как-то исправить, и я поставил модуль node privacy by role. В прошлой версии сайта (на Drupal 4.7) похожая проблема возникала, и была решена этим модулем, в этой же (на 5.2) статьи админа так и остаются неприкосновенными... Скорее всего, проблема решается вмешательством в PHP-код, но где и что нужно исправить, я не догадываюсь, ведь кода много, а я очень плохо в нем разбираюсь. Уважаемые Drupal специалисты! Прошу у Вас помощи в сложившейся ситуации - советов, как это можно исправить.

Комментарии

Аватар пользователя ultraboy@drupal.org ultraboy@drupal.org 24 октября 2007 в 15:25

"Опытным путем вычислил, что редактор имеет право на вмешательство только в материалы других пользователей, но никак не root'а" - звучит странно.

Аватар пользователя edhel edhel 24 октября 2007 в 15:59

Смотрите настройки прав в админке, там можно задать каким ролям какие типы публикаций можно редактировать. Можно указать, чтобы одни роли могли бы редактировать только свои публикации, а другие, к примеру, все публикации заданного типа.

Аватар пользователя Евгений Евгений (не проверено) 2 ноября 2007 в 12:58

Тем не менее. Бъюсь над проблемой уже больше недели...
Смотрел в админке, пытался ставить сторонние модули, обновлял кэш прав доступа - ничего не меняется.
Редактор спокойно может менять материалы любых пользователей, кроме user/1. В Drupal 4.7 такого не было, это баг или фича?

Аватар пользователя Евгений Евгений (не проверено) 2 ноября 2007 в 14:06

То есть создать пользователя с админскими правами. Но ведь root бывает только одним. И не будет ли он с новым ID также недоступным для редактирования?
Может быть, есть какая-то функция проверки статуса пользователя в коде, которая не дает пользователям с правом редактирования любых материалов редактировать записи root'а? Очень хотелось бы решить проблему, а не обходить ее различным шаманством... Товарищи друпалисты, может быть, перед Вами эта проблема не стояла, но у нас такая структура управления сайтом, что нужно менять записи админа. Вот такие журналистские причуды, и соглсиситесь, что ситуация явно нестандартная и неправильная по логике вещей.

Аватар пользователя Евгений Евгений (не проверено) 2 ноября 2007 в 15:06

Сейчас посмотрел еще раз... Сильно подозреваю, что это сравнение идет где-то в файле node.module. Хотя я могу ошибаться, и злосчастный условный оператор находится в отвечающем за права доступа модуле. Тогда вопрос, если проблема в программном коде, то что это модуль и где примерно должен находиться оператор?

Аватар пользователя vadbars@drupal.org vadbars@drupal.org 3 ноября 2007 в 8:38

Евгений, где-то вы напортачили с установкой или настройкой Drupal. Только что специально проверил на чистом Drupal 5.3 - авторизованный пользователь, у которого выставлено право "Изменять страницы" запросто редактирует страницы, созданные админом. Так что умозаключение "Опытным путем вычислил, что редактор имеет право на вмешательство только в материалы других пользователей, но никак не root'а (первого пользователя-админа)." - неверно.

Попробуйте еще раз внимательно посмотреть распределение прав ("Контроль доступа"), либо - в крайнем случае- заново переставьте Drupal.

Аватар пользователя Пожалуйста подскажите! Пожалуйста подс... (не проверено) 3 ноября 2007 в 9:33

Попробовал ставить модули:
node privacy by role;
ACL + content access;
Admin Role

НИЧЕГО не изменилось, сколько бы я не ставил "настройки прав в админке, там можно задать каким ролям какие типы публикаций можно редактировать". Все работает, но ноды админа поменять нельзя никому, кроме самого админа. При любых комбинациях прав...

Модуль Admin Role дал роли "редактор" все полномочия, кроме ... да, кроме возможности изменения статей первого пользователя.

Знатоки, пожалуйста, помогите справиться с проблемой!

Аватар пользователя edhel edhel 3 ноября 2007 в 9:41

Как знаток говорю: снесите нафиг все эти модули и используйте встроенную систему прав. Имхо: или галочку ставите не там или какой-то из модулей всё "портит".

Аватар пользователя edhel edhel 3 ноября 2007 в 9:43

Кстати, если у пользователя нет права на "формат ввода", который используется в ноде (пхп-код, например), то у него не будет права и на редактирование такой ноды.

Аватар пользователя Евгений Евгений (не проверено) 3 ноября 2007 в 10:46

"Кстати, если у пользователя нет права на "формат ввода", который используется в ноде (пхп-код, например), то у него не будет права и на редактирование такой ноды."

Edhel, огромное спасибо! Как оказалось, проблемы была именно в этом. Редактор не имел права на использование FullHTML, а админ создавал страницы именно в нем!
Предлагаю внести этот маленький совет в FAQ, возможно, он поможет кому-нибудь еще. Еще раз спасибо всем, кто откликнулся и помог решить проблему. И конечно же, я приглашаю Вас на наш многострадальный портал - http://ekonom42.ru . Удачи!

Аватар пользователя Андрей Латышев Андрей Латышев (не проверено) 21 января 2008 в 16:16

У меня такая же проблема.
Как только админ отредактировал ноду, все остальные пользователи теряют возможность ее изменять. Было в версии 5.5, обновил на 5.6 - то же самое.
Плюс ко всему эти самые, отредактированые админом, ноды перестают быть доступны для просмотра неавторизованным пользователям, хотя я явно давал права на просмотр (работает нормально для нод, нетронутых админом).
Где даются права на FullHTML? (все обыскал - никак не найти)

Из доп. модулей стоит:
ACL
Content Access
и всевозможные Image Assist

PHP 5.1.6
MySQL 5.0.27

Аватар пользователя Андрей Латышев Андрей Латышев (не проверено) 21 января 2008 в 17:09

Нашел, где даются права на FullHTML:
/admin/settings/filters/3

после того, как разрешил этот формат, у зарегистрированных пользователей появилась возможность редакции нод админа,
но незарегистрированные пользователи по пежнему не имеют доступа для просмотра этих нод

("Доступ запрещен
Зарегистрируйтесь, чтобы получить доступ к этой странице.")

Как с этим бороться?