Current section

Files

Jump to
blossom lib blossom utils.ex
Raw

lib/blossom/utils.ex

defmodule Blossom.Utils do
alias Blossom.Utils
def option_or_key_config(config, opts, key, default) do
if opts[key] != nil do
opts[key]
else
Keyword.get(config, key, default)
end
end
def audience(config, opts, otp_app) do
Utils.option_or_key_config(config, opts, :audience, otp_app)
end
def expiration(config, opts) do
Utils.option_or_key_config(config, opts, :expiration, 43200)
end
def secret(config, opts) do
Utils.option_or_key_config(config, opts, :secret, nil)
end
def filter_allowed(values, allowed_values) do
cond do
is_list(values) ->
Enum.filter(values, fn value -> Enum.member?(allowed_values, value) end)
values != nil ->
if Enum.member?(allowed_values, values) do
[values]
else
allowed_values
end
true ->
allowed_values
end
end
def put_allowed_orgs(params, key, user, org_roles) do
memberships = org_roles.memberships(user)
params
|> Map.put(key, Utils.filter_allowed(params[key], memberships))
end
def put_managed_orgs(params, key, user, org_roles) do
adminships = org_roles.adminships(user)
params
|> Map.put(key, Utils.filter_allowed(params[key], adminships))
end
end