Как вы управляете информацией веб-навигации в вашем приложении? - PullRequest
1 голос
/ 16 марта 2010

Я создаю приложение, в котором у разных пользователей будут разные пункты меню, в зависимости от того, за что они заплатили. В иерархии меню также будет несколько уровней.

Как лучше всего подойти к этой проблеме?

Я предполагаю, что мне нужна таблица базы данных, которая представляет иерархию меню, включая отношения родитель-потомок узлов в навигации, а также сортировку элементов. Затем еще одна таблица, которую я использую для управления правом доступа пользователя к определенному элементу в этой таблице.

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

Это правильный подход? Любые предложения для кэширования этого, чтобы предотвратить постоянный поиск информации такого типа? Я открыт для любых предложений о том, как вы могли подойти к этому типу требований.

1 Ответ

1 голос
/ 16 марта 2010

Когда пользователь входит в систему, я проверяю все права, которые у него есть, а затем сохраняю их в своем сеансе. Таким образом, вам нужно только найти их из базы данных один раз.

В противном случае, ваш подход к работе с меню и на каждой странице контроллера выглядит нормально.

...