Role Giver
Section
emails = ["test.test@santiment.net"]
roles_to_give = %{
"Santiment Team Member" => 1,
"Santiment Moderator" => 1,
"Metric Registry Viewer" => 1,
"Metric Registry Change Suggester" => 1,
"Metric Registry Owner" => 0,
"Metric Registry Deployer" => 0,
"Admin Panel Viewer" => 1,
"Admin Panel Editor" => 1,
"Admin Panel Owner" => 0
}
# Get the users
users =
Enum.map(emails, fn e ->
{:ok, u} = Sanbase.Accounts.User.by_email(e)
u
end)
# Assign the roles from the map which are not 0
roles = Enum.filter(roles_to_give, fn {_k, v} -> v == 1 end) |> Enum.map(fn {k, _v} -> k end)
roles_ids = Sanbase.Accounts.Role.by_names(roles) |> Enum.map(& &1.id)
for %{id: user_id, email: email} <- users, role_id <- roles_ids do
try do
Sanbase.Accounts.UserRole.create(user_id, role_id)
rescue
_ -> {:error, "#{email} already has role #{role_id}"}
end
end