mirror of
https://github.com/team-alembic/ash_authentication.git
synced 2024-09-19 12:52:55 +12:00
fix: respect identity_relationship_user_id_attribute
on Strategy.OAuth2.IdentityChange
This commit is contained in:
parent
6448bd7366
commit
333ca2e7c0
1 changed files with 16 additions and 14 deletions
|
@ -29,20 +29,22 @@ defmodule AshAuthentication.Strategy.OAuth2.IdentityChange do
|
|||
defp do_change(changeset, strategy) do
|
||||
changeset
|
||||
|> Changeset.after_action(fn changeset, user ->
|
||||
with {:ok, user_id_attribute_name} <-
|
||||
strategy.identity_resource
|
||||
|> UserIdentity.Info.user_identity_user_id_attribute_name(),
|
||||
{:ok, _identity} <-
|
||||
strategy.identity_resource
|
||||
|> UserIdentity.Actions.upsert(%{
|
||||
user_info: Changeset.get_argument(changeset, :user_info),
|
||||
oauth_tokens: Changeset.get_argument(changeset, :oauth_tokens),
|
||||
strategy: Strategy.name(strategy),
|
||||
user_id: user.id
|
||||
})
|
||||
|> case do
|
||||
{:ok, _identity} ->
|
||||
"#{user_id_attribute_name}": user.id
|
||||
}) do
|
||||
user
|
||||
|> changeset.api.load(strategy.identity_relationship_name)
|
||||
|
||||
{:error, reason} ->
|
||||
{:error, reason}
|
||||
else
|
||||
:error -> :error
|
||||
{:error, reason} -> {:error, reason}
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue