Content access и "авторские" гранты доступа [Частично решено]

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

Аватар пользователя lanzs lanzs 31 июля 2010 в 21:13

На сайте три роли для зарегистрированных пользователей. Возникла необходимость дать пользователям возможность выставлять "видимость" их материала. На данный момент реализуется это с помощью content access. Content access дает хорошие возможности для выставления "доступности" материала - можно сделать материал доступным для роли, а можно сделать доступным для отдельных пользователей.

Но возникла пара проблем с модулем:

1. Проблема "авторского гранта" на просмотр. Если автор хочет, чтобы пользователи с такой же ролью, как и у него не могли просматривать материал, то он убирает "галку" в соответствующем пункте. Но тогде и сам автор "не видит" (не отображается он для него) своего материала.

2. Слишком много доступно пользователю.. Если в "разрешениях" выставить в настройках модуля content_access grant own content access для определенной роли, то эта роль может редактировать "доступ" к своей ноде. Но, вместе с тем, пользователь получает возможность и редактировать "общие настройки", а именно поля View any content, Edit any content и Delete any content.

Решения данных проблем пока не нашел. Начал копаться в самом модуле, но пока безрезультатно. Если кто-то знает решения - прошу помощи!

p.s. может быть стоит (возможно) сделать это через view`s ?! изначально так и планировалось, но не получилось реализовать, а именно сделать так, чтобы когда в материале отмечен определенный пункт "видимости" (создан новый тип материала с дополнительными полями видимости - чекбоксы с ролями), то выводится материал только для тех пользователей, у которых роль совпадает со значением данного чекбокса.

Комментарии

Аватар пользователя lanzs lanzs 5 августа 2010 в 14:18

Решения с модулями пока не найдено.
Пока сделал так:
С помощью CCK в материале было добавленно поле "видимость".
В этом поле пользователь может отметить, кому доступен вновь созданный материал: выбрать роль или дружественную связь
Ну а далее, в node.tpl уже делается проверка соответствия настроек видимости материала и статуса пользователя, а также его связи с автором ноды.

Аватар пользователя lanzs lanzs 4 февраля 2011 в 13:34

Подробнее:
В новой ноде делаем новое поле проверки (чекбоксы, текст или что-то другое - зависит от задач проверки). Соответственно при добавлении ноды пользователь вбивает значение в это "поле проверки".
Ну а в шаблоне этой нода-новая.тпл.пхп перед тем как что-либо показать делается проверка прав доступа (вытягиваем нужные значения из базы и сверяем их с этим самым $node->field_проверка).
Пока все..

Аватар пользователя iNFerNo iNFerNo 4 февраля 2011 в 15:22

у меня

Content access

не работает.

а авторские права доступа там же вроде и так есть...

---

есть модуль views own но он у меня тоже не пашет. в связках с модулями доступа. пока мучаюсь с Node_access может допишут его авторы...

Аватар пользователя lanzs lanzs 4 февраля 2011 в 15:33

Сейчас уже не помню точно, но проблема с Content_access и прочими была в том, что они не позволяли сделать именно так как надо, т.е. чтобы отдельный пользователь выставил настроки доступа к своей записи, при этом не изменяя общих настроек, выводов и прочего.
Если выводить через вьюху по условию нового поля (поля приватности), то это не спасет, потому что к ноде можно будет обратиться напрямую.
Именно поэтому и было решено через новое поле и собственную проверку в шаблоне ноды - обеспечивается необходимая гибкость и приватность Smile
Другое дело, что этот вариант не универсальный, потому что делался под конкретный случай

Аватар пользователя iNFerNo iNFerNo 31 января 2012 в 14:46

"lanzs" wrote:
Подробнее:
В новой ноде делаем новое поле проверки (чекбоксы, текст или что-то другое - зависит от задач проверки). Соответственно при добавлении ноды пользователь вбивает значение в это "поле проверки".
Ну а в шаблоне этой нода-новая.тпл.пхп перед тем как что-либо показать делается проверка прав доступа (вытягиваем нужные значения из базы и сверяем их с этим самым $node->field_проверка).
Пока все..

это только скрыть получаться или можно доступ к ноде перекрыть?

Аватар пользователя Perfectus Perfectus 27 января 2014 в 9:43

Та же самая проблема.
После установки Content Acccess + ACL появилась следующая проблема:
В штатном модуле разграничения прав, установлено разрешения на редактирование своего материла для роли Редактор.
Стоит галка на просмотр не опубликованных материалов.
В Content Access для данного материла также стоят эти же права.
Если заходить по ссылке, то доступ к материалу есть и пользователь с ролью Редактор модет редактировать материал.
Но в списке содержимого нет этих материалов, на главной также материлов не видно.
Решается проблема установкой галки на "Просмотр, правка и удаление всех материалов"
Но это не приемлимо в моей ситуации.

Подскажите пожалуйста как решить проблему?
Права здесь переопределял: admin/reports/status/rebuild

Аватар пользователя iNFerNo iNFerNo 27 января 2014 в 11:40

галку во вьюсах (если список вьюсом выводите) в настройках вьюхи поставьте - там что - то типа игнорирование настроек доступа. И все будет показываться...

Аватар пользователя Perfectus Perfectus 27 января 2014 в 20:05

Да, материалы действительно выводятся через Views. Но не могу найти эту галку. Это нужно смотреть в Критериях фильтрации?
В настройках блока, во вкладке "Доступ" стоит значение "Нет"
В содержимом так же нет этих материалов, не только в представлениях.

Аватар пользователя iNFerNo iNFerNo 1 февраля 2014 в 11:19

Убирайте всю фильтрацию и все лишнее и делайте заново. Ищите свои косяки, ноды все выводяться с это й галкой на всех версиях друпал если к самим нодам доступа нет. При условии что вы сами ничего не химичили и не кодили в своих модулях.