feat: port basic functionality to elixir
This commit is contained in:
27
lib/components_elixir_web/controllers/auth_controller.ex
Normal file
27
lib/components_elixir_web/controllers/auth_controller.ex
Normal file
@@ -0,0 +1,27 @@
|
||||
defmodule ComponentsElixirWeb.AuthController do
|
||||
use ComponentsElixirWeb, :controller
|
||||
|
||||
alias ComponentsElixir.Auth
|
||||
|
||||
def authenticate(conn, %{"password" => password}) do
|
||||
case Auth.authenticate(password) do
|
||||
{:ok, :authenticated} ->
|
||||
conn
|
||||
|> Auth.sign_in()
|
||||
|> put_flash(:info, "Successfully logged in!")
|
||||
|> redirect(to: ~p"/")
|
||||
|
||||
{:error, :invalid_credentials} ->
|
||||
conn
|
||||
|> put_flash(:error, "Invalid password")
|
||||
|> redirect(to: ~p"/login")
|
||||
end
|
||||
end
|
||||
|
||||
def logout(conn, _params) do
|
||||
conn
|
||||
|> Auth.sign_out()
|
||||
|> put_flash(:info, "Logged out successfully")
|
||||
|> redirect(to: ~p"/login")
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user