Как разрешить удаленный вход (вне офиса IP) для некоторых пользователей только в приложении Redmine - PullRequest
0 голосов
/ 19 января 2020

Друзья,

Есть ли способ, которым мы можем разрешить группе пользователей получать доступ к redmine с любого IP, тогда как другие пользователи могут входить только с набора IP

Пожалуйста, помогите

спасибо

Абхишек

1 Ответ

0 голосов
/ 20 января 2020

В настоящее время (Redmine 4.1) такой функции нет, однако это программное обеспечение с открытым исходным кодом, и вы можете либо запросить такую ​​функцию на их трекере , либо разработать собственный код. Поэтому, если вам быстро нужно решение, есть несколько вариантов:

Метод 1: Вы можете решить эту проблему, подключив удаленных пользователей через VPN, и у них будет IP-адрес с заданным набором IP-адресов. .

Метод 2: Разработайте специальный плагин аутентификации, который даст вам возможность выбирать, с какого IP-адреса может войти пользователь.

Метод 3: Изменить Основные файлы и база данных Redmine или создать настраиваемое поле, в котором хранится утвержденный пользователем IP-адрес или диапазон, изменив файл /mode/user.rb

Таким образом, вы должны добавить что-то вроде:

return nil unless IPAddr.new(user.permitted_ip).include? request.env['HTTP_X_REAL_IP'] || request.env['REMOTE_ADDR']

после

 # Returns the user that matches provided login and password, or nil
  def self.try_to_login(login, password, active_only=true)
    login = login.to_s.strip
    password = password.to_s

    # Make sure no one can sign in with an empty login or password
    return nil if login.empty? || password.empty?
    user = find_by_login(login)
    if user
    # user is already in local database
      return nil unless user.check_password?(password)
      return nil if !user.active? && active_only

(вышеуказанный код должен работать, если вы не используете внешний источник аутентификации)

...