Fix demo user confirmation to allow password login
The seeds file was creating an unconfirmed user and then setting a password, which conflicts with Phoenix's auth system (magic link login is not allowed for unconfirmed users with passwords). This fix ensures the demo user is confirmed before setting their password, so they can log in via both magic link and password. Demo credentials: demo@example.com / password123!
This commit is contained in:
parent
efbd314d33
commit
188c556233
@ -11,11 +11,29 @@
|
|||||||
# and so on) as they will fail if something goes wrong.
|
# and so on) as they will fail if something goes wrong.
|
||||||
|
|
||||||
if Mix.env() == :dev do
|
if Mix.env() == :dev do
|
||||||
|
import Ecto.Query
|
||||||
alias Firehose.Accounts
|
alias Firehose.Accounts
|
||||||
|
|
||||||
# Create demo user if not already present
|
# Get or create demo user
|
||||||
unless Accounts.get_user_by_email("demo@example.com") do
|
user = Accounts.get_user_by_email("demo@example.com")
|
||||||
|
|
||||||
|
unless user do
|
||||||
{:ok, user} = Accounts.register_user(%{email: "demo@example.com"})
|
{:ok, user} = Accounts.register_user(%{email: "demo@example.com"})
|
||||||
|
end
|
||||||
|
|
||||||
|
# Ensure user is confirmed to allow password login and avoid magic link conflicts
|
||||||
|
if is_nil(user.confirmed_at) do
|
||||||
|
Firehose.Repo.update_all(
|
||||||
|
from(u in Accounts.User, where: u.email == ^"demo@example.com"),
|
||||||
|
set: [confirmed_at: DateTime.utc_now()]
|
||||||
|
)
|
||||||
|
|
||||||
|
# Reload user after confirmation
|
||||||
|
user = Accounts.get_user_by_email("demo@example.com")
|
||||||
|
end
|
||||||
|
|
||||||
|
# Set password if not already set
|
||||||
|
unless user.hashed_password do
|
||||||
{:ok, {_user, _tokens}} = Accounts.update_user_password(user, %{password: "password123!"})
|
{:ok, {_user, _tokens}} = Accounts.update_user_password(user, %{password: "password123!"})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user