Ограничить некоторые URL (я имею в виду контроллер) только для того же пользователя локальной сети - PullRequest
1 голос
/ 22 октября 2010

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

Используете два рельса с одной и той же базой данных mysql, но разные порты и порт только вперед? Ограничить какой-либо URL-адрес только для локального пользователя? использовать апач вместо дворняги? Но как?

Ответы [ 2 ]

1 голос
/ 22 октября 2010

Вы можете сделать это несколькими способами:

Иметь PublicBaseController и LocalBaseController.Оба наследуют от ApplicationController

class LocalBaseController < ApplicationController
  before_filter :local_only

  protected
  def local_only
    return false unless request.local?
  end
end

, а затем позже:

class AccountsController < LocalBaseController
  def index
    # will not execute unless it is local
  end
end

Это хорошая запись, хотя и немного старая, о , как Rails решает, является ли запрос локальным .

1 голос
/ 22 октября 2010

Самый безопасный способ - создать две версии программы, каждая из которых будет прослушивать только определенный порт и / или интерфейс. Но управление двумя приложениями вместо одного может быть слишком дорогостоящим.

Я предлагаю вам проверить объект запроса и решить, какие свойства можно использовать для различения «внутреннего» и «внешнего» доступа.

В ваших контроллерах используйте «before_filter» для предоставления или запрета доступа.

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