Нужна помощь в разработке приложения Rails 2 с двумя разделами - PullRequest
0 голосов
/ 22 августа 2010

У меня есть модели A, B, C, D и т. Д. У меня есть свои обычные контроллеры / представления / помощники для каждой из этих моделей. Доступ к ним осуществляется набором авторов контента в приложении на основе форм для заполнения данных в БД. У авторов контента также будут такие категории, как авторы, издатели, супер-администраторы и т. Д. По сути, мы создали мини-систему управления контентом.

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

Как мне это сделать? Должен ли я создавать отдельные контроллеры и вызывать эти модели для веб-сайта пользователя? Как я могу убедиться, что пользователи сайта не имеют доступа к экранам CMS? Какие-нибудь указатели, принципы проектирования, методы маршрутизации, гемы для такого приложения?

Ответы [ 2 ]

1 голос
/ 22 августа 2010

Как мне это сделать?Должен ли я создавать отдельные контроллеры и вызывать эти модели для веб-сайта пользователя?

Я бы создал другой набор контроллеров для бэкенда и внешнего интерфейса.Я бы переместил бэкэнд-контроллер в пространство имен.Дополнительная информация о пространствах имен: http://guides.rubyonrails.org/routing.html#controller-namespaces-and-routing

Как я могу гарантировать, что пользователи сайта не имеют доступа к экранам cms?Какие-нибудь указатели, принципы проектирования, методы маршрутизации, гемы для такого приложения?

Для этого вам нужна какая-то аутентификация и авторизация.Некоторые примеры:

Есть несколько хороших скринкастов по этому вопросу:

0 голосов
/ 22 августа 2010

Вам нужен уровень аутентификации.

Самый простой способ, и я бы сказал, что наиболее распространенным является создание отдельных контроллеров для каждого раздела и добавление метода before_filter в каждом разделе для аутентификации и авторизации пользователя для продолжения (обычно метод is_admin? для модель пользователя), или перенаправьте обратно с сообщением об ошибке, если пользователь не разрешен.

Вы можете разделить ваши контроллеры с помощью пространств имен (что-то вроде / admin / авторы, / admin / books / 1 / edit и т. Д.) И сохранить их RESTful таким образом.

Если вам нужна более сложная схема, вы можете использовать любой из инструментов авторизации http://ruby -toolbox.com / Categories / rails_authorization.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...