Current section

Files

Jump to
auth0_ex lib auth0_ex management user.ex
Raw

lib/auth0_ex/management/user.ex

defmodule Auth0Ex.Management.User do
@moduledoc """
A module representing users on Auth0
"""
use Auth0Ex.Api, for: :mgmt
@path "users"
@doc """
Gets all the users
iex> Auth0Ex.Management.User.all()
iex> Auth0Ex.Management.User.all(fields: "name", q: "app_metadata.admin:'true'")
"""
def all(params \\ %{}) when is_map(params) or is_list(params) do
do_get(@path, params)
end
@doc """
Gets a specific user record with a given user id
iex> Auth0Ex.Management.User.get("auth0|some_user_id")
iex> Auth0Ex.Management.User.get("auth0|some_user_id", %{fields: "email,name,username"})
"""
def get(user_id, params \\ %{}) when is_binary(user_id) and is_map(params) do
do_get("#{@path}/#{user_id}", params)
end
@doc """
Creates a user for the specified connection
iex> Auth0Ex.Management.User.create("test_connection", %{email: "test.user@email.com", username: "test_user_name"})
"""
def create(connection, body \\ %{}) when is_binary(connection) and is_map(body) do
do_post(@path, Map.put(body, :connection, connection))
end
@doc """
Updates a user's information given a user id
iex> Auth0Ex.Management.User.update("auth0|some_user_id", %{app_metadata: %{admin: false}})
"""
def update(user_id, body \\ %{}) when is_binary(user_id) and is_map(body) do
do_patch("#{@path}/#{user_id}", body)
end
@doc """
Deletes a user with a give user id
iex> Auth0Ex.Management.User.delete("auth0|some_user_id")
"""
def delete(user_id) when is_binary(user_id) do
do_delete("#{@path}/#{user_id}")
end
@doc """
Get a user's log
iex> Auth0Ex.Management.User.log("auth0|233423")
iex> Auth0Ex.Management.User.log("auth0|23423", page: 2, per_page: 10)
"""
def log(user_id, params) do
do_get("#{@path}/#{user_id}/logs", params)
end
@doc """
Get all Guardain enrollments for given user_id
iex> Auth0Ex.Management.User.enrollments("auth0|234")
"""
def enrollments(user_id), do: do_get("#{@path}/#{user_id}/enrollments", %{})
@doc """
Deletes a user's multifactor provider
iex> Auth0Ex.Management.User.delete_mfprovider("auth0|23423", "duo")
"""
def delete_mfprovider(user_id, provider) do
do_delete("#{@path}/#{user_id}/multifactor/#{provider}")
end
@doc """
Unlinks an identity from the target user, and it becomes a separated user again.
iex> Auth0Ex.Management.User.unlink("some_user_id", "github", "23984234")
"""
def unlink(primary_id, provider, secondary_id) do
do_delete("#{@path}/#{primary_id}/identities/#{provider}/#{secondary_id}")
end
@doc """
Removes current Guardain recovery code and generates new one
iex> Auth0Ex.Management.User.regenerate_recovery_code("auth0|34234")
"""
def regenerate_recovery_code(id) do
do_post("#{@path}/#{id}/recovery-code-regeneration")
end
@doc """
Links the account specified in the body to the given user_id param
iex> Auth0Ex.Management.User.link("some_user_id", link_with: "secondary_acc_jwt")
iex> Auth0Ex.Management.User.link("some_user_id", provider: "github", user_id: "23423", connection_id: "som")
"""
def link(id, body) do
do_post("#{@path}/#{id}/identities", body)
end
@doc false
defp default_params do
case Application.get_env(:auth0_ex, :v2_search) do
true ->
%{}
_ ->
%{search_engine: "v3"}
end
end
end