Fix if real ip not present in headers.
Exclude more addresses from telegram messages.
This commit is contained in:
parent
5e974da721
commit
2140a165fd
2 changed files with 11 additions and 3 deletions
|
@ -11,7 +11,10 @@ defmodule UiWeb.PageController do
|
|||
end
|
||||
|
||||
def morse(conn, _params) do
|
||||
ip = conn |> Plug.Conn.get_req_header("x-real-ip") |> hd()
|
||||
ip = case Plug.Conn.get_req_header(conn, "x-real-ip") do
|
||||
[h|_tl] -> h
|
||||
_ -> "0.0.0.0"
|
||||
end
|
||||
LiveView.Controller.live_render(conn, UiWeb.MorseLive, session: %{ip: ip})
|
||||
end
|
||||
end
|
||||
|
|
|
@ -13,8 +13,8 @@ defmodule UiWeb.MorseLive do
|
|||
end
|
||||
|
||||
def handle_event("toggle_morse", _value, %{assigns: %{ip: ip}} = socket) do
|
||||
if not Morse.Server.in_progress?() and ip != "127.0.0.1" do
|
||||
spawn fn -> Ui.TelegramBot.message("#{ip} pressed the button!") end
|
||||
if not Morse.Server.in_progress?() and ip_send_message?(ip) do
|
||||
spawn(fn -> Ui.TelegramBot.message("#{ip} pressed the button!") end)
|
||||
end
|
||||
|
||||
Morse.Server.toggle_morse()
|
||||
|
@ -38,4 +38,9 @@ defmodule UiWeb.MorseLive do
|
|||
ip: ip
|
||||
]
|
||||
end
|
||||
|
||||
defp ip_send_message?(ip) do
|
||||
not (String.starts_with?(ip, "192.168.") or String.starts_with?(ip, "10.")
|
||||
or ip == "127.0.0.1" or ip == "localhost" or ip == "0.0.0.0")
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue