Upload of project source code files.
This commit is contained in:
38
lib/vishnya_web/controllers/auth_controller.ex
Normal file
38
lib/vishnya_web/controllers/auth_controller.ex
Normal file
@@ -0,0 +1,38 @@
|
||||
defmodule VishnyaWeb.AuthController do
|
||||
use VishnyaWeb, :controller
|
||||
alias Vishnya.Accounts
|
||||
|
||||
def authenticate_user(conn, %{"username" => username, "password" => password} = params) do
|
||||
remember = Map.get(params, "remember") == "on"
|
||||
|
||||
IO.inspect(remember)
|
||||
|
||||
case Accounts.authenticate_user(username, password) do
|
||||
{:ok, user} ->
|
||||
conn
|
||||
|> put_flash(:info, "Signed in successfully!")
|
||||
|> put_resp_cookie("auth_token", user.token, max_age: if(remember, do: 60 * 60 * 24 * 30, else: nil))
|
||||
|> redirect(to: "/dashboard")
|
||||
|
||||
:error ->
|
||||
conn
|
||||
|> put_flash(:error, "Invalid username or password.")
|
||||
|> redirect(to: "/sign_in")
|
||||
end
|
||||
end
|
||||
|
||||
def authenticate_user(conn, %{"token" => token}) do
|
||||
case Accounts.authenticate_user(token) do
|
||||
nil ->
|
||||
conn
|
||||
|> put_flash(:error, "Invalid session token.")
|
||||
|> redirect(to: "/sign_in")
|
||||
|
||||
user ->
|
||||
conn
|
||||
|> put_flash(:info, "Loaded session token.")
|
||||
|> put_resp_cookie("auth_token", user.token, max_age: 60 * 60 * 24 * 30)
|
||||
|> redirect(to: "/dashboard")
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user