@@ -2,6 +2,7 @@ defmodule AlgoraWeb.SignInLive do
22 @ moduledoc false
33 use AlgoraWeb , :live_view
44
5+ alias Algora.Accounts
56 alias Algora.Accounts.User
67 alias AlgoraWeb.Components.Logos
78 alias AlgoraWeb.LocalStore
@@ -262,11 +263,11 @@ defmodule AlgoraWeb.SignInLive do
262263 def handle_event ( "send_login_code" , % { "user" => % { "email" => email } } , socket ) do
263264 { secret , code } = AlgoraWeb.UserAuth . generate_totp ( )
264265
265- case Algora. Accounts. get_user_by_email ( email ) do
266+ case Accounts . get_user_by_email ( email ) do
266267 % User { } = user ->
267268 changeset = User . login_changeset ( % User { } , % { } )
268269
269- case send_login_code_to_user ( user , code ) do
270+ case Accounts . deliver_totp_login_email ( user , code ) do
270271 { :ok , _id } ->
271272 { :noreply ,
272273 socket
@@ -289,7 +290,7 @@ defmodule AlgoraWeb.SignInLive do
289290 @ impl true
290291 def handle_event ( "send_login_code" , % { "user" => % { "login_code" => code } } , socket ) do
291292 if AlgoraWeb.UserAuth . valid_totp? ( socket . assigns . secret , String . trim ( code ) ) do
292- Algora. Accounts. ensure_org_context ( socket . assigns . user )
293+ Accounts . ensure_org_context ( socket . assigns . user )
293294
294295 { :noreply ,
295296 redirect ( socket , to: AlgoraWeb.UserAuth . generate_login_path ( socket . assigns . user . email , socket . assigns [ :return_to ] ) ) }
@@ -304,42 +305,14 @@ defmodule AlgoraWeb.SignInLive do
304305
305306 case socket . assigns [ :email ] do
306307 nil -> { :noreply , socket }
307- email -> { :noreply , assign ( socket , :user , Algora. Accounts. get_user_by_email ( email ) ) }
308+ email -> { :noreply , assign ( socket , :user , Accounts . get_user_by_email ( email ) ) }
308309 end
309310 end
310311
311312 defp assign_form ( socket , % Ecto.Changeset { } = changeset ) do
312313 assign ( socket , :form , to_form ( changeset ) )
313314 end
314315
315- @ from_name "Algora"
316- 317-
318- defp send_login_code_to_user ( user , code ) do
319- email =
320- Email . new ( )
321- |> Email . to ( { user . display_name , user . email } )
322- |> Email . from ( { @ from_name , @ from_email } )
323- |> Email . subject ( "#{ code } - Algora Sign-in Verification" )
324- |> Email . text_body ( """
325- Hello #{ user . display_name } ,
326-
327- To complete the sign-in process; enter the 6-digit code in the original window:
328-
329- #{ code }
330-
331- If you didn't request this link, you can safely ignore this email.
332-
333- --------------------------------------------------------------------------------
334-
335- For correspondence, please email the Algora founders at [email protected] and [email protected] 336-
337- © 2025 Algora PBC.
338- """ )
339-
340- Algora.Mailer . deliver ( email )
341- end
342-
343316 defp throttle , do: :timer . sleep ( 1000 )
344317
345318 defp get_random_quote do
0 commit comments