Add possibility to create users with provider (such as LDAP)

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
This commit is contained in:
Thomas Citharel
2021-07-22 15:09:12 +02:00
parent 395675ce6a
commit fa8cae681f
6 changed files with 133 additions and 25 deletions

View File

@@ -42,11 +42,12 @@ defmodule Mobilizon.Users do
end
end
@spec create_external(String.t(), String.t()) :: {:ok, User.t()} | {:error, Ecto.Changeset.t()}
def create_external(email, provider) do
@spec create_external(String.t(), String.t(), Map.t()) ::
{:ok, User.t()} | {:error, Ecto.Changeset.t()}
def create_external(email, provider, args \\ %{}) do
with {:ok, %User{} = user} <-
%User{}
|> User.auth_provider_changeset(%{email: email, provider: provider})
|> User.auth_provider_changeset(Map.merge(args, %{email: email, provider: provider}))
|> Repo.insert() do
Events.create_feed_token(%{user_id: user.id})