summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/aggiedit/accounts.ex4
-rw-r--r--lib/aggiedit/rooms/post.ex1
-rw-r--r--lib/aggiedit/utils.ex1
-rw-r--r--lib/aggiedit_web/live/live_helpers.ex18
-rw-r--r--lib/aggiedit_web/live/post_live/form_component.ex1
-rw-r--r--lib/aggiedit_web/live/post_live/form_component.html.heex4
-rw-r--r--lib/aggiedit_web/live/post_live/helper.ex18
-rw-r--r--lib/aggiedit_web/live/post_live/index.ex17
-rw-r--r--lib/aggiedit_web/live/post_live/show.ex6
9 files changed, 30 insertions, 40 deletions
diff --git a/lib/aggiedit/accounts.ex b/lib/aggiedit/accounts.ex
index 1852393..70ac870 100644
--- a/lib/aggiedit/accounts.ex
+++ b/lib/aggiedit/accounts.ex
@@ -5,9 +5,9 @@ defmodule Aggiedit.Accounts do
import Ecto.Query, warn: false
alias Aggiedit.Repo
+ alias Aggiedit.Rooms
alias Aggiedit.Accounts.{User, UserToken, UserNotifier}
- alias Aggiedit.Rooms
## Database getters
@@ -140,7 +140,7 @@ defmodule Aggiedit.Accounts do
with {:ok, query} <- UserToken.verify_change_email_token_query(token, context),
%UserToken{sent_to: email} <- Repo.one(query),
- {:ok, _} <- Repo.transaction(user_email_multi(user, email, context)),
+ {:ok, %{:user => user}} <- Repo.transaction(user_email_multi(user, email, context)),
{:ok, _user} <- set_user_room(user) do
:ok
else
diff --git a/lib/aggiedit/rooms/post.ex b/lib/aggiedit/rooms/post.ex
index 2156fae..ee9450d 100644
--- a/lib/aggiedit/rooms/post.ex
+++ b/lib/aggiedit/rooms/post.ex
@@ -1,7 +1,6 @@
defmodule Aggiedit.Rooms.Post do
use Ecto.Schema
import Ecto.Changeset
- alias Aggiedit.Repo
schema "posts" do
field :body, :string
diff --git a/lib/aggiedit/utils.ex b/lib/aggiedit/utils.ex
index 492b36e..05e94b3 100644
--- a/lib/aggiedit/utils.ex
+++ b/lib/aggiedit/utils.ex
@@ -3,7 +3,6 @@ defmodule Aggiedit.Utils do
domain_split = Regex.named_captures(~r/^.*@(?<domain>.*)$/, email)["domain"]
|> String.downcase()
|> String.split(".")
- IO.puts(inspect(domain_split))
if Enum.count(domain_split) >= 2 do
Enum.join(Enum.take(domain_split, -2), ".")
diff --git a/lib/aggiedit_web/live/live_helpers.ex b/lib/aggiedit_web/live/live_helpers.ex
index e31fedc..a8d067e 100644
--- a/lib/aggiedit_web/live/live_helpers.ex
+++ b/lib/aggiedit_web/live/live_helpers.ex
@@ -7,6 +7,11 @@ defmodule AggieditWeb.LiveHelpers do
alias Aggiedit.Accounts
alias Aggiedit.Accounts.User
+ alias Aggiedit.Rooms
+ alias Aggiedit.Roles
+
+ alias AggieditWeb.Router.Helpers, as: Routes
+
@doc """
Renders a live component inside a modal.
@@ -69,4 +74,17 @@ defmodule AggieditWeb.LiveHelpers do
_ -> socket
end
end
+
+ def assign_socket_room_and_user_or_error(%{"room_id" => room_id}, session, socket) do
+ socket = assign_socket_user(session, socket)
+ case socket.assigns do
+ %{:current_user => user} ->
+ room = Rooms.get_room!(room_id)
+ case Roles.guard?(user, :index, room) do
+ true -> {:ok, assign(socket, %{:room => room})}
+ _ -> {:ok, socket |> put_flash(:error, "You cannot view that room") |> redirect(to: Routes.page_path(socket, :index))}
+ end
+ _ -> {:ok, socket |> put_flash(:error, "You must log in to access this page.") |> redirect(to: Routes.user_session_path(socket, :new))}
+ end
+ end
end
diff --git a/lib/aggiedit_web/live/post_live/form_component.ex b/lib/aggiedit_web/live/post_live/form_component.ex
index c316c0b..8714277 100644
--- a/lib/aggiedit_web/live/post_live/form_component.ex
+++ b/lib/aggiedit_web/live/post_live/form_component.ex
@@ -4,7 +4,6 @@ defmodule AggieditWeb.PostLive.FormComponent do
alias Aggiedit.Rooms
alias Aggiedit.Rooms.Post
alias Aggiedit.Uploads
- alias Aggiedit.Uploads.Upload
alias Aggiedit.Repo
@impl true
diff --git a/lib/aggiedit_web/live/post_live/form_component.html.heex b/lib/aggiedit_web/live/post_live/form_component.html.heex
index a956cb3..b0a798e 100644
--- a/lib/aggiedit_web/live/post_live/form_component.html.heex
+++ b/lib/aggiedit_web/live/post_live/form_component.html.heex
@@ -26,8 +26,8 @@
</div>
</div>
<% end %>
- <%= else %>
- <% if !is_nil(@post.upload) do %>
+ <% else %>
+ <%= if !is_nil(@post.upload) do %>
<div class="row">
<div class="column">
<img style="height:80px" src={Routes.static_path(@socket, "/uploads/#{@post.upload.file}")} />
diff --git a/lib/aggiedit_web/live/post_live/helper.ex b/lib/aggiedit_web/live/post_live/helper.ex
deleted file mode 100644
index 5b8e5be..0000000
--- a/lib/aggiedit_web/live/post_live/helper.ex
+++ /dev/null
@@ -1,18 +0,0 @@
-defmodule AggieditWeb.PostLive.Helper do
- use AggieditWeb, :live_view
- alias Aggiedit.Rooms
- alias Aggiedit.Roles
-
- def assign_socket_room_and_user_or_error(%{"room_id" => room_id}=params, session, socket) do
- socket = assign_socket_user(session, socket)
- case socket.assigns do
- %{:current_user => user} ->
- room = Rooms.get_room!(room_id)
- case Roles.guard?(socket.assigns.current_user, :index, room) do
- true -> {:ok, assign(socket, %{:room => room})}
- _ -> {:ok, socket |> put_flash(:error, "You cannot view that room") |> redirect(to: Routes.page_path(socket, :index))}
- end
- _ -> {:ok, socket |> put_flash(:error, "You must log in to access this page.") |> redirect(to: Routes.user_session_path(socket, :new))}
- end
- end
-end \ No newline at end of file
diff --git a/lib/aggiedit_web/live/post_live/index.ex b/lib/aggiedit_web/live/post_live/index.ex
index 26c078c..6972a44 100644
--- a/lib/aggiedit_web/live/post_live/index.ex
+++ b/lib/aggiedit_web/live/post_live/index.ex
@@ -1,23 +1,16 @@
defmodule AggieditWeb.PostLive.Index do
use AggieditWeb, :live_view
- alias Aggiedit.Accounts.User
alias Aggiedit.Roles
alias Aggiedit.Rooms
- alias Aggiedit.Rooms.{Post, Room}
+ alias Aggiedit.Rooms.Post
alias Aggiedit.Repo
@impl true
- def mount(%{"room_id" => room_id} = params, session, socket) do
- {:ok, socket} = AggieditWeb.PostLive.Helper.assign_socket_room_and_user_or_error(params, session, socket)
-# if !is_nil(socket.assigns[:room]) do
-# {:ok, assign(socket, %{:posts => socket.assigns.room |> Repo.preload(:posts) |> Map.get(:posts)})}
-# else
-# {:ok, socket}
-# end
+ def mount(%{"room_id" => _room_id} = params, session, socket) do
+ {:ok, socket} = assign_socket_room_and_user_or_error(params, session, socket)
case socket.assigns do
- %{:room => room} ->
- {:ok, assign(socket, %{:posts => room |> Repo.preload(:posts) |> Map.get(:posts)})}
+ %{:room => room} -> {:ok, assign(socket, %{:posts => room |> Repo.preload(:posts) |> Map.get(:posts)})}
_ -> {:ok, socket}
end
end
@@ -38,7 +31,7 @@ defmodule AggieditWeb.PostLive.Index do
{:noreply, apply_action(socket, socket.assigns.live_action, params)}
end
- defp apply_action(socket, :edit, %{"id" => id}=params) do
+ defp apply_action(socket, :edit, %{"id" => id}) do
socket
|> assign(:page_title, "Edit Post")
|> assign(:post, Rooms.get_post!(id) |> Repo.preload(:upload))
diff --git a/lib/aggiedit_web/live/post_live/show.ex b/lib/aggiedit_web/live/post_live/show.ex
index f3293fb..9d8f86c 100644
--- a/lib/aggiedit_web/live/post_live/show.ex
+++ b/lib/aggiedit_web/live/post_live/show.ex
@@ -6,12 +6,12 @@ defmodule AggieditWeb.PostLive.Show do
alias Aggiedit.Repo
@impl true
- def mount(%{"room_id" => room_id} = params, session, socket) do
- AggieditWeb.PostLive.Helper.assign_socket_room_and_user_or_error(params, session, socket)
+ def mount(%{"room_id" => _room_id} = params, session, socket) do
+ assign_socket_room_and_user_or_error(params, session, socket)
end
@impl true
- def handle_params(%{"id" => id}=params, _, socket) do
+ def handle_params(%{"id" => id}, _, socket) do
post = Rooms.get_post!(id)
|> Repo.preload(:upload)
if Roles.guard?(socket.assigns.current_user, socket.assigns.live_action, post) do