Здравствуйте,
на сайте есть каталог товаров с несколькими уровнями вложенности:
- каталог 1
-- каталог 1.1
--- каталог 1.1.1
-- каталог 1.2
-- каталог 1.3
- каталог 2
-- каталог 2.1
-- каталог 2.2
У каждого каталога есть есть несколько, на выбор, уровней доступа:
1) все пользователи
2) только создатель
3) все кроме...[выбор пользователей]
4) некоторые пользователи...[выбор пользователей]
Для каждого каталога в базе сделал поля:
1) Тип прав, с вариантами: all, i, all_except, some
2) Выбранные пользователи, если тип прав выбран all_except или some, то здесь перечисляем их id
Запрос вывода всех каталогов второго уровня вложенности к базе делаю такой:
->where("((projects.creator_id = $id)
OR (projects.perm_type_view = 'all')
OR (projects.perm_type_view = 'some' AND projects.select_users_view LIKE '%\"$id\"%')
OR (projects.perm_type_view = 'all_except' AND projects.select_users_view NOT LIKE '%\"$id\"%')
Проблема заключается:
если у "каталог 1" уровень доступа ограничен только создателем, а каталогу 1.1 присвоен уровень доступа "все пользователи", то мой запрос к базе отобразит мне "каталог 1.1", а я хочу чтоб запрос проверял родителя, т. е. "каталог 1", есть ли у меня и к нему тоже.
Кто то встречался с подобными проблемами?