Download lib/medicode_web/controllers/user_session_controller.ex from headway/medicode: direct link, hf CLI and curl.
- Browser
- Download file 1.24 kB
-
https://huggingface.co/spaces/headway/medicode/resolve/main/lib/medicode_web/controllers/user_session_controller.ex
- Command line
-
hf download hf://spaces/headway/medicode/lib/medicode_web/controllers/user_session_controller.ex
-
curl -L -o user_session_controller.ex https://huggingface.co/spaces/headway/medicode/resolve/main/lib/medicode_web/controllers/user_session_controller.ex
1.24 kB
| defmodule MedicodeWeb.UserSessionController do | |
| use MedicodeWeb, :controller | |
| alias Medicode.Accounts | |
| alias MedicodeWeb.UserAuth | |
| def create(conn, %{"_action" => "registered"} = params) do | |
| create(conn, params, "Account created successfully!") | |
| end | |
| def create(conn, %{"_action" => "password_updated"} = params) do | |
| conn | |
| |> put_session(:user_return_to, ~p"/users/settings") | |
| |> create(params, "Password updated successfully!") | |
| end | |
| def create(conn, params) do | |
| create(conn, params, "Welcome back!") | |
| end | |
| defp create(conn, %{"user" => user_params}, info) do | |
| %{"email" => email, "password" => password} = user_params | |
| if user = Accounts.get_user_by_email_and_password(email, password) do | |
| conn | |
| |> put_flash(:info, info) | |
| |> UserAuth.log_in_user(user, user_params) | |
| else | |
| # In order to prevent user enumeration attacks, don't disclose whether the email is registered. | |
| conn | |
| |> put_flash(:error, "Invalid email or password") | |
| |> put_flash(:email, String.slice(email, 0, 160)) | |
| |> redirect(to: ~p"/users/log_in") | |
| end | |
| end | |
| def delete(conn, _params) do | |
| conn | |
| |> put_flash(:info, "Logged out successfully.") | |
| |> UserAuth.log_out_user() | |
| end | |
| end | |