Update sign_in
This commit is contained in:
parent
5ece6bef19
commit
987d32398b
2 changed files with 26 additions and 4 deletions
|
@ -43,7 +43,9 @@ defmodule Nulla.Models.User do
|
|||
|> Repo.insert()
|
||||
end
|
||||
|
||||
def get_user_by_username(username), do: Repo.get_by(User, username: username)
|
||||
def get_user(by) when is_map(by) or is_list(by) do
|
||||
Repo.get_by(User, by)
|
||||
end
|
||||
|
||||
def get_total_users_count() do
|
||||
Repo.aggregate(from(u in User), :count, :id)
|
||||
|
|
|
@ -4,9 +4,24 @@ defmodule NullaWeb.AuthController do
|
|||
alias Nulla.Models.Actor
|
||||
alias Nulla.Models.InstanceSettings
|
||||
|
||||
def sign_in(conn, _params) do
|
||||
def sign_in(conn, %{"email" => email, "password" => password}) do
|
||||
user = User.get_user(email: email)
|
||||
|
||||
if user do
|
||||
if Argon2.verify_pass(password, user.password) do
|
||||
conn
|
||||
|> put_session(:user_id, user.id)
|
||||
|> redirect(to: "/")
|
||||
else
|
||||
conn
|
||||
|> put_flash(:error, "Invalid login or password.")
|
||||
|> redirect(to: ~p"/auth/sign_in")
|
||||
end
|
||||
else
|
||||
conn
|
||||
|> put_flash(:error, "User not exist.")
|
||||
|> redirect(to: ~p"/auth/sign_in")
|
||||
end
|
||||
end
|
||||
|
||||
def sign_out(conn, _params) do
|
||||
|
@ -18,6 +33,11 @@ defmodule NullaWeb.AuthController do
|
|||
|
||||
def sign_up(conn, %{"username" => username, "email" => email, "password" => password}) do
|
||||
instance_settings = InstanceSettings.get_instance_settings!()
|
||||
|
||||
if not instance_settings.registration do
|
||||
redirect(conn, to: "/")
|
||||
end
|
||||
|
||||
domain = instance_settings.domain
|
||||
hashed_password = Argon2.hash_pwd_salt(password)
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue