Introduce admin and moderator role, check role on list_users action

Signed-off-by: Thomas Citharel <tcit@tcit.fr>

Add test for guards
This commit is contained in:
Thomas Citharel
2019-03-06 18:45:26 +01:00
parent f4c09c36a7
commit cb0808dbad
10 changed files with 137 additions and 11 deletions

View File

@@ -11,6 +11,7 @@ defmodule MobilizonWeb.Guardian do
alias Mobilizon.Users
alias Mobilizon.Users.User
require Logger
def subject_for_token(%User{} = user, _claims) do
{:ok, "User:" <> to_string(user.id)}
@@ -21,6 +22,8 @@ defmodule MobilizonWeb.Guardian do
end
def resource_from_claims(%{"sub" => "User:" <> uid_str}) do
Logger.debug(fn -> "Receiving claim for user #{uid_str}" end)
try do
case Integer.parse(uid_str) do
{uid, ""} ->
@@ -39,6 +42,8 @@ defmodule MobilizonWeb.Guardian do
end
def after_encode_and_sign(resource, claims, token, _options) do
Logger.debug(fn -> "after_encode_and_sign #{inspect(claims)}" end)
with {:ok, _} <- Guardian.DB.after_encode_and_sign(resource, claims["typ"], claims, token) do
{:ok, token}
end