mirror of
https://github.com/ash-project/ash.git
synced 2024-09-20 13:33:20 +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)
|
||||
|
||||
identity ->
|
||||
changeset.resource
|
||||
|> Ash.Resource.Info.identities()
|
||||
|> Enum.find(&(&1.name == identity))
|
||||
|> Kernel.||(
|
||||
raise ArgumentError,
|
||||
"No identity found for #{inspect(changeset.resource)} called #{inspect(identity)}"
|
||||
)
|
||||
|> Map.get(:keys)
|
||||
keys =
|
||||
changeset.resource
|
||||
|> Ash.Resource.Info.identities()
|
||||
|> Enum.find(&(&1.name == identity))
|
||||
|> Kernel.||(
|
||||
raise ArgumentError,
|
||||
"No identity found for #{inspect(changeset.resource)} called #{inspect(identity)}"
|
||||
)
|
||||
|> 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
|
||||
|
||||
changeset = set_tenant(changeset)
|
||||
|
|
Loading…
Reference in a new issue