Здравствуйте, помогите решить задачу. Есть таблицы: Пользователи, Группы, Категории.
Порядок действий:
1) создаем группу и задаем ей права доступа
2) создаем пользователя и выбираем группу к которой он относится
3) создаем категорию и задаем группы которые имеют к ней доступ
То есть например у нас группа "администраторы категории 1", которая обладает всеми правами. Мы создаем пользователя Иванов и даем ему группу администраторы. И создаем "Категорию 1", к которой имеют доступ только "администраторы категории 1".
Помимо этого могут быть категория 2, категория 3, или вообще другие категории к которым Иванов не будет иметь доступ.
Как это проверить можно и сделать чтобы остальное ему не было доступно к просмотру? По правам доступа это не сделать так как могут быть различные категории и группы и каждый раз в коде править не вариант. Надо как-то узнать группы, к которым относится пользователь, разрешенные группы для категорий и отобразить только то что доступно.
Подскажите пожалуйста как это сделать?