Иерархия прав к материалу.

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

Аватар пользователя Алексей Дёмин Алексей Дёмин 1 октября 2010 в 14:20

Здравствуйте!

Дано: четырёх-ступенчатая иерархия, между которыми надо решить проблему прав доступа к материалу.
Высшее звено - могут могут иметь доступ куда угодно
Начальники отделов - имеют доступ к материалам своего отдела и секторов
Начальники секторов - видят только свой сектор (материалы всех служащих)
Служащие - только свои документы.

Ролями решить не получится, потому что отделов много, а секторов еще больше и число их не постоянное.

Любые мысли?

ps: если найдется исполнитель - буду рад!

контакты для связи:
Почта, Google Talk: alexey@dyomin.ru
ICQ: 29638538
skype: alexey_dyomin

Комментарии

Аватар пользователя Azerot Azerot 1 октября 2010 в 14:26

Именно ролями и ничем другим.
Постоянные они или нет - не важно. Кому-то всё-равно придётся сидеть и права актуализировать - тем открыть, этим закрыть.

Аватар пользователя Алексей Дёмин Алексей Дёмин 1 октября 2010 в 17:07

Azerot wrote:
Именно ролями и ничем другим.
Постоянные они или нет - не важно. Кому-то всё-равно придётся сидеть и права актуализировать - тем открыть, этим закрыть.

Даже если так, как я смогу дать для разных ролей возможность смотреть материал Page, созданный именно сотрудниками своего отдела, но не сотрудниками других отделов?

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

Аватар пользователя Azerot Azerot 2 октября 2010 в 0:07

Например, можно создать словарь в таксономии, в нём описать как термины отделы, а права раздавать через модуль taxonomy_access - заметьте, это только один из возможных вариантов.

Аватар пользователя Алексей Дёмин Алексей Дёмин 3 октября 2010 в 14:53

Да, я так и сделал.
Роли
Отдел 1
Отдел N

Начальник отдела
Начальник сектора
Сотрудник

добавил термины в новый словарь таксономии
Отдел 1
Отдел N

Отчасти работает, но все равно не получается сделать так, чтобы агенты видели только свои материалы, начальники - только материалы своего сектора, а директор - только своего отдела. При том, если добавляется для этих целей новый словарь Должностей

Начальник отдела
Начальник сектора
Сотрудник

то сотрудники могут видеть материалы в других отделах. потому что

Users with multiple user roles: Allow/Ignore/Deny options are interpreted only within one user role. When a user belongs to multiple user roles, then the user gets access if any of his/her user roles have the access granted.

например для роли сотрудник в TAC добавлен:
Ваша роль
по умолчанию D D D C L
Сотрудник A A A C L
у одного материала таксономия
Подразделение = Отдел 1
Ваша Роль = Сотрудник

у другого материала таксономия
Подразделение = Отдел 2
Ваша Роль = Сотрудник

То все, кто имеет роль сотрудник, могут видеть оба материала.
Выход вижу - для каждого офиса делать по три роли.. но это невозможно!

Azerot wrote:
заметьте, это только один из возможных вариантов.

После детального изучения, мне кажется единственный из очевидных.

Аватар пользователя Azerot Azerot 4 октября 2010 в 11:58

Quote:
Выход вижу - для каждого офиса делать по три роли.. но это невозможно!

Почему? И встречный вопрос - а каким тогда волшебным образом Друпал должен узнать, что вот этот сотрудник начальник ИМЕННО ЭТОГО отдела и ему можно то и это, а этот сотрудник - просто сотрудник ИМЕННО ЭТОГО отдела и ему можно только то?

Quote:
После детального изучения, мне кажется единственный из очевидных.

Ну не единственный, есть ещё модуль "node access" или "content access"
Но вряд ли там вам будет проще.

Аватар пользователя Алексей Дёмин Алексей Дёмин 4 октября 2010 в 14:02

"Azerot" wrote:
Почему? И встречный вопрос - а каким тогда волшебным образом Друпал должен узнать, что вот этот сотрудник начальник ИМЕННО ЭТОГО отдела и ему можно то и это, а этот сотрудник - просто сотрудник ИМЕННО ЭТОГО отдела и ему можно только то?

Я планировал сделать перекрестные роли. Например у каждого человека две роли Должность и Отдел. Уже на порядок меньше ролей.
да и если делать для каждого отдела свою роль с должностью (отдел 1 - сотрудник, отдел 2 - сотрудник и так далее), - то уже и tac получается не нужен. тоже самое можно сделать стандартными пермишинсами.

"Алексей Дёмин" wrote:
но все равно не получается сделать так, чтобы агенты видели только свои материалы, начальники - только материалы своего сектора, а директор - только своего отдела.

может быть какие-то использовать модули не связанные на прямую с правами? например группы.