mirror of
https://github.com/ClaperCo/Claper.git
synced 2026-02-24 04:01:04 +01:00
feat: Add default admin user creation in seeds script
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user