Архитектура: рабочий / директор (3 основных роли) в одном приложении rails - PullRequest
1 голос
/ 09 ноября 2010

Я хочу разработать приложение rails, которое делает это:

  • общедоступный интерфейс, развернутый в каком-то месте, например, Heroku
  • частный интерфейс, к которому я могу получить доступ (это может быть где-то, например, мой дом / офис, где работает единственное приложение)
  • частный бэкэнд, который собирает и анализирует данные (общедоступный интерфейс может получить доступ к бэкенду через API, это было бы где-то вроде моего дома / офиса, где работает единственное приложение)

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

Итак, две вещи:

  1. это хорошая архитектура для этого?

  2. как мне запустить рабочий процесс / процесс фонового заземления на частной передней / серверной машине

спасибо

Ответы [ 3 ]

1 голос
/ 19 ноября 2010

А как насчет авторизации? Я использую этот плагин с Restful-аутентификацию для аутентификации.

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

1 голос
/ 19 ноября 2010

Это одно приложение.

Мое предложение заключается в том, что вы используете инфраструктуру аутентификации, мое предложение будет разработано (https://github.com/plataformatec/devise) и структура авторизации, например, acl9 (https://github.com/be9/acl9) или cancan (https://github.com/ryanb/cancan).

*).1006 * Дело в том, что люди умнее вас, и я создал фантастические рамки для решения именно этой проблемы, и нет смысла изобретать колесо, когда что-то уже существует. Плюс, написание систем аутентификации может показаться простым, но на самом деле невероятно сложным.

Я бы также не рекомендовал restful-аутентификацию или acts_as_authenticated, особенно если вы создаете приложение rails 3.

Если вы планируете развертывание на heroku с использованием переменных среды, не сработает, потому что:

  1. Переменные будут одинаковыми для всех ваших dyno.
  2. Если вы хотите запускать разные приложения, вам нужно приобрести их новые базы данных, которые стоят довольно дорого.

Объедините все в одно приложение, свою жизнь сВ конечном счете, мне будет легче!

Для фоновых работников вы можете использовать resque и динамически раскручивать работников (http://blog.darkhax.com/2010/07/30/auto-scale-your-resque-workers-on-heroku). Используйте разные очереди, если вы хотите использовать общедоступный / приватный материал, если у них разные SLA.

Надеюсь, это поможет, если у вас есть еще вопросы, оставьте комментарий.

0 голосов
/ 13 ноября 2010

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

Не могли бы вы использовать before_filter, который аутентифицировал доступ и авторизовал различные уровни функциональности на основе аутентифицированного пользователя?

Для аутентификации вы могли бы пойти на что-то простое, как это (шпаргалка здесь):

http://cheat.errtheblog.com/s/acts_as_authenticated/

или лучше:

https://github.com/technoweenie/restful-authentication

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