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()
|
|> Repo.insert()
|
||||||
end
|
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
|
def get_total_users_count() do
|
||||||
Repo.aggregate(from(u in User), :count, :id)
|
Repo.aggregate(from(u in User), :count, :id)
|
||||||
|
|
|
@ -4,9 +4,24 @@ defmodule NullaWeb.AuthController do
|
||||||
alias Nulla.Models.Actor
|
alias Nulla.Models.Actor
|
||||||
alias Nulla.Models.InstanceSettings
|
alias Nulla.Models.InstanceSettings
|
||||||
|
|
||||||
def sign_in(conn, _params) do
|
def sign_in(conn, %{"email" => email, "password" => password}) do
|
||||||
conn
|
user = User.get_user(email: email)
|
||||||
|> redirect(to: "/")
|
|
||||||
|
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
|
end
|
||||||
|
|
||||||
def sign_out(conn, _params) do
|
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
|
def sign_up(conn, %{"username" => username, "email" => email, "password" => password}) do
|
||||||
instance_settings = InstanceSettings.get_instance_settings!()
|
instance_settings = InstanceSettings.get_instance_settings!()
|
||||||
|
|
||||||
|
if not instance_settings.registration do
|
||||||
|
redirect(conn, to: "/")
|
||||||
|
end
|
||||||
|
|
||||||
domain = instance_settings.domain
|
domain = instance_settings.domain
|
||||||
hashed_password = Argon2.hash_pwd_salt(password)
|
hashed_password = Argon2.hash_pwd_salt(password)
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue