summaryrefslogtreecommitdiff
path: root/lib/aggiedit
diff options
context:
space:
mode:
authorLogan Hunt <loganhunt@simponic.xyz>2022-04-13 13:13:41 -0600
committerLogan Hunt <loganhunt@simponic.xyz>2022-04-13 13:13:41 -0600
commit77d572796ca940e3eb5edd1192f8cd127286284e (patch)
tree228d42c390ce68e57b8cd432d88dd57215c02771 /lib/aggiedit
parent9d5a369ff6aa2dc3a80f104ffdc622ddf594a725 (diff)
downloadaggiedit-77d572796ca940e3eb5edd1192f8cd127286284e.tar.gz
aggiedit-77d572796ca940e3eb5edd1192f8cd127286284e.zip
Update roles and list posts from room
Diffstat (limited to 'lib/aggiedit')
-rw-r--r--lib/aggiedit/roles.ex3
-rw-r--r--lib/aggiedit/rooms.ex13
2 files changed, 7 insertions, 9 deletions
diff --git a/lib/aggiedit/roles.ex b/lib/aggiedit/roles.ex
index e50b53b..3ec6bfd 100644
--- a/lib/aggiedit/roles.ex
+++ b/lib/aggiedit/roles.ex
@@ -1,10 +1,13 @@
defmodule Aggiedit.Roles do
alias Aggiedit.Accounts.User
alias Aggiedit.Rooms.Post
+ alias Aggiedit.Rooms.Room
def guard?(user, action, object)
def guard?(%User{role: :admin}, _, _), do: true
+ def guard?(%User{room_id: rid}, :index, %Room{id: rid}), do: true
def guard?(%User{room_id: rid}, :show, %Post{room_id: rid}), do: true
def guard?(%User{id: id, room_id: rid}, action, %Post{user_id: id, room_id: rid}) when action in [:delete, :edit], do: true
def guard?(_, _, _), do: false
+
end \ No newline at end of file
diff --git a/lib/aggiedit/rooms.ex b/lib/aggiedit/rooms.ex
index 8f2e39f..1eb09f9 100644
--- a/lib/aggiedit/rooms.ex
+++ b/lib/aggiedit/rooms.ex
@@ -112,19 +112,14 @@ defmodule Aggiedit.Rooms do
alias Aggiedit.Rooms.Post
- @doc """
- Returns the list of posts.
-
- ## Examples
-
- iex> list_posts()
- [%Post{}, ...]
-
- """
def list_posts do
Repo.all(Post)
end
+ def posts_in_room(room_id) do
+ Repo.all((from p in Post, where: p.room_id == ^room_id, select: p))
+ end
+
@doc """
Gets a single post.