diff --git a/lib/philomena/users.ex b/lib/philomena/users.ex index f104963a..39abe930 100644 --- a/lib/philomena/users.ex +++ b/lib/philomena/users.ex @@ -172,5 +172,13 @@ defmodule Philomena.Users do |> join(:left, [u, _], _ in assoc(u, :current_filter)) |> preload([_, r, cf], [current_filter: cf, roles: r]) |> Repo.get_by(clauses) + |> setup_roles() + end + + defp setup_roles(nil), do: nil + defp setup_roles(user) do + role_map = Map.new(user.roles, &{&1.name, &1.resource_type || true}) + + %{user | role_map: role_map} end end diff --git a/lib/philomena/users/user.ex b/lib/philomena/users/user.ex index 12711f02..49c93643 100644 --- a/lib/philomena/users/user.ex +++ b/lib/philomena/users/user.ex @@ -130,6 +130,9 @@ defmodule Philomena.Users.User do field :uploaded_avatar, :string, virtual: true field :removed_avatar, :string, virtual: true + # For mod stuff + field :role_map, :any, virtual: true + timestamps(inserted_at: :created_at) end