feat: Add default admin user creation in seeds script

This commit is contained in:
Alex Lion
2025-11-11 13:02:44 +01:00
parent 11df9728d0
commit ab29541ca3
2 changed files with 28 additions and 1 deletions

View File

@@ -21,7 +21,8 @@ defmodule Claper.Release do
for repo <- repos() do
{:ok, _, _} =
Ecto.Migrator.with_repo(repo, fn _repo ->
Code.eval_file("priv/repo/seeds.exs")
seed_script = Application.app_dir(@app, "priv/repo/seeds.exs")
Code.eval_file(seed_script)
end)
end
end

View File

@@ -42,3 +42,29 @@ if !Claper.Repo.get_by(Lti13.Jwks.Jwk, id: 1) do
active: true
})
end
# Create default admin user if no users exist
alias Claper.Accounts
alias Claper.Accounts.User
if Repo.aggregate(User, :count, :id) == 0 do
admin_role = Repo.get_by(Role, name: "admin")
if admin_role do
{:ok, admin_user} =
Accounts.register_user(%{
email: "admin@claper.co",
password: "claper",
confirmed_at: NaiveDateTime.utc_now() |> NaiveDateTime.truncate(:second)
})
Accounts.assign_role(admin_user, admin_role)
IO.puts("Created default admin user:")
IO.puts(" Email: admin@claper.co")
IO.puts(" Password: claper")
IO.puts(" IMPORTANT: Please change this password after first login!")
else
IO.puts("Warning: Admin role not found, skipping default admin user creation")
end
end