mirror of
https://github.com/ash-project/ash.git
synced 2024-09-20 21:43:02 +12:00
Fix: Add tenant attribute to identity attributes on upserts (#565)
This commit is contained in:
parent
54f65b4d6f
commit
8686cc9417
1 changed files with 16 additions and 8 deletions
|
@ -303,14 +303,22 @@ defmodule Ash.Actions.Create do
|
||||||
Ash.Resource.Info.primary_key(changeset.resource)
|
Ash.Resource.Info.primary_key(changeset.resource)
|
||||||
|
|
||||||
identity ->
|
identity ->
|
||||||
changeset.resource
|
keys =
|
||||||
|> Ash.Resource.Info.identities()
|
changeset.resource
|
||||||
|> Enum.find(&(&1.name == identity))
|
|> Ash.Resource.Info.identities()
|
||||||
|> Kernel.||(
|
|> Enum.find(&(&1.name == identity))
|
||||||
raise ArgumentError,
|
|> Kernel.||(
|
||||||
"No identity found for #{inspect(changeset.resource)} called #{inspect(identity)}"
|
raise ArgumentError,
|
||||||
)
|
"No identity found for #{inspect(changeset.resource)} called #{inspect(identity)}"
|
||||||
|> Map.get(:keys)
|
)
|
||||||
|
|> Map.get(:keys)
|
||||||
|
|
||||||
|
if changeset.tenant &&
|
||||||
|
Ash.Resource.Info.multitenancy_strategy(changeset.resource) == :attribute do
|
||||||
|
[Ash.Resource.Info.multitenancy_attribute(changeset.resource) | keys]
|
||||||
|
else
|
||||||
|
keys
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
changeset = set_tenant(changeset)
|
changeset = set_tenant(changeset)
|
||||||
|
|
Loading…
Reference in a new issue