diff --git a/discuss/web/channels/user_socket.ex b/discuss/web/channels/user_socket.ex index ac646ca..213dba1 100644 --- a/discuss/web/channels/user_socket.ex +++ b/discuss/web/channels/user_socket.ex @@ -6,11 +6,15 @@ defmodule Discuss.UserSocket do transport :websocket, Phoenix.Transports.WebSocket def connect(%{"token" => token}, socket) do - case Phoenix.Token.verify(socket, "key", token) do - {:ok, user_id} -> - {:ok, assign(socket, :user_id, user_id)} - {:error, _error} -> - :error + if token == "undefined" do + {:ok, socket} # anonymous + else + case Phoenix.Token.verify(socket, "key", token) do + {:ok, user_id} -> + {:ok, assign(socket, :user_id, user_id)} + {:error, _error} -> + :error + end end end diff --git a/discuss/web/templates/topic/index.html.eex b/discuss/web/templates/topic/index.html.eex index 09dfab5..4f527d4 100644 --- a/discuss/web/templates/topic/index.html.eex +++ b/discuss/web/templates/topic/index.html.eex @@ -5,7 +5,7 @@
  • <%= link topic.title, to: topic_path(@conn, :show, topic) %> - <%= if @conn.assigns.user.id == topic.user_id do %> + <%= if @conn.assigns.user && @conn.assigns.user.id == topic.user_id do %>
    <%= link "Edit", to: topic_path(@conn, :edit, topic) %> <%= link "Delete", to: topic_path(@conn, :delete, topic), method: :delete %>