PowAssent v0.1.0 PowAssent.Ecto.UserIdentities.Context behaviour View Source

Handles pow assent user identity context for user identities.

Usage

This module will be used by PowAssent by default. If you wish to have control over context methods, you can do configure lib/my_project/user_identities/user_identities.ex the following way:

defmodule MyApp.UserIdentities do
  use PowAssent.Ecto.UserIdentities.Context,
    repo: MyApp.Repo,
    user: MyApp.Users.User

  def all(user) do
    pow_assent_all(user)
  end
end

Remember to update configuration with user_identities_context: MyApp.UserIdentities.

The following Pow methods can be accessed:

  • pow_assent_get_user_by_provider_id/3
  • pow_assent_create/4
  • pow_assent_create_user/4
  • pow_assent_delete/2
  • pow_assent_all/1

Configuration options

  • :repo - the ecto repo module (required)
  • :user - the user schema module (required)

Link to this section Summary

Functions

Fetches all user identities for user

Creates a user identity

Deletes a user identity for the provider and user

Finds a user based on the provider and uid

Link to this section Types

Link to this type user_identity() View Source
user_identity() :: map()

Link to this section Functions

Fetches all user identities for user.

User schema module and repo module will be fetched from config.

Link to this function create(user, provider, uid, config) View Source
create(user(), binary(), binary(), PowAssent.Config.t()) ::
  {:ok, user_identity()}
  | {:error, {:bound_to_different_user, map()}}
  | {:error, Ecto.Changeset.t()}

Creates a user identity.

User schema module and repo module will be fetched from config.

Link to this function create_user(provider, uid, params, user_id_params, config) View Source
create_user(binary(), binary(), map(), map(), PowAssent.Config.t()) ::
  {:ok, map()}
  | {:error,
     {:bound_to_different_user | :invalid_user_id_field, Ecto.Changeset.t()}}
  | {:error, Ecto.Changeset.t()}

Creates a user with user identity.

User schema module and repo module will be fetched from config.

Link to this function delete(user, provider, config) View Source
delete(user(), binary(), PowAssent.Config.t()) ::
  {:ok, {number(), nil}} | {:error, {:no_password, Ecto.Changeset.t()}}

Deletes a user identity for the provider and user.

User schema module and repo module will be fetched from config.

Link to this function get_user_by_provider_uid(provider, uid, config) View Source
get_user_by_provider_uid(binary(), binary(), PowAssent.Config.t()) ::
  user() | nil

Finds a user based on the provider and uid.

User schema module and repo module will be fetched from the config.

Link to this section Callbacks

Link to this callback create(user, binary, binary) View Source
create(user(), binary(), binary()) ::
  {:ok, user()}
  | {:error, {:bound_to_different_user, map()}}
  | {:error, Ecto.Changeset.t()}
Link to this callback create_user(binary, binary, map, map) View Source
create_user(binary(), binary(), map(), map()) ::
  {:ok, map()}
  | {:error,
     {:bound_to_different_user | :invalid_user_id_field, Ecto.Changeset.t()}}
  | {:error, Ecto.Changeset.t()}
Link to this callback delete(user, binary) View Source
delete(user(), binary()) ::
  {:ok, {number(), nil}} | {:error, {:no_password, Ecto.Changeset.t()}}
Link to this callback get_user_by_provider_uid(binary, binary) View Source
get_user_by_provider_uid(binary(), binary()) :: user() | nil