So, I'm finding this is getting more and more problematic as time goes on. Currently, if I want to use the permissions of a user, I have to create a parser for each user type. Consider the following:
def load(conn, params, current_user, {:ok, %{"pem" => %{"sys" => perms}}} = claims) do
do_load(conn, params, current_user, perms)
end
def load(conn, params, current_user, {:ok, %{"pem" => %{"admin" => perms}}} = claims) do
do_load(conn, params, current_user, perms)
end
def load(conn, params, current_user, {:ok, %{"pem" => %{"user" => perms}}} = claims) do
do_load(conn, params, current_user, perms)
end
Here, I have to create all three function signatures, because it's not possible to do:
def load(conn, params, current_user, {:ok, %{"pem" => %{type => perms}}} = claims) when type in ["sys", "admin", "user"] do
So, I'm finding this is getting more and more problematic as time goes on. Currently, if I want to use the permissions of a user, I have to create a parser for each user type. Consider the following:
Here, I have to create all three function signatures, because it's not possible to do:
Any thoughts on an efficient way to do this?
Thanks