Compare commits
2 commits
4a79081fc8
...
577e273a1b
Author | SHA1 | Date | |
---|---|---|---|
577e273a1b | |||
f88c247a5c |
8 changed files with 84 additions and 6 deletions
|
@ -1,3 +1,15 @@
|
||||||
|
defmodule NullaWeb.PageHTML do
|
||||||
|
use NullaWeb, :html
|
||||||
|
|
||||||
|
embed_templates "templates/page/*"
|
||||||
|
end
|
||||||
|
|
||||||
|
defmodule NullaWeb.AuthHTML do
|
||||||
|
use NullaWeb, :html
|
||||||
|
|
||||||
|
embed_templates "templates/auth/*"
|
||||||
|
end
|
||||||
|
|
||||||
defmodule NullaWeb.ActorHTML do
|
defmodule NullaWeb.ActorHTML do
|
||||||
use NullaWeb, :html
|
use NullaWeb, :html
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
<main class="flex min-h-screen items-center justify-center">
|
||||||
|
<form class="flex flex-col gap-2" action="/auth/sign_in" method="post">
|
||||||
|
<label for="email">E-mail address *</label>
|
||||||
|
<input id="email" name="email" type="email" maxlength="50" required />
|
||||||
|
<label for="password">Password *</label>
|
||||||
|
<input id="password" name="password" type="password" minlength="8" maxlength="50" required />
|
||||||
|
<button class="text-white bg-black py-2 border" type="submit">Log in</button>
|
||||||
|
</form>
|
||||||
|
</main>
|
12
lib/nulla_web/components/templates/auth/sign_up.html.heex
Normal file
12
lib/nulla_web/components/templates/auth/sign_up.html.heex
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
<main class="flex min-h-screen items-center justify-center">
|
||||||
|
<form class="flex flex-col gap-2" action="/auth" method="post">
|
||||||
|
<label for="username">Username *</label>
|
||||||
|
<input id="username" name="username" type="text" maxlength="30" required />
|
||||||
|
<label for="email">E-mail address *</label>
|
||||||
|
<input id="email" name="email" type="email" maxlength="50" required />
|
||||||
|
<label for="password">Password *</label>
|
||||||
|
<input id="password" name="password" type="password" minlength="8" maxlength="50" required />
|
||||||
|
<input id="password_confirm" name="password_confirm" type="password" minlength="8" maxlength="50" placeholder="Confirm password" />
|
||||||
|
<button class="text-white bg-black py-2 border" type="submit">Sign up</button>
|
||||||
|
</form>
|
||||||
|
</main>
|
0
lib/nulla_web/components/templates/page/home.html.heex
Normal file
0
lib/nulla_web/components/templates/page/home.html.heex
Normal file
|
@ -1,12 +1,37 @@
|
||||||
defmodule NullaWeb.AuthController do
|
defmodule NullaWeb.AuthController do
|
||||||
use NullaWeb, :controller
|
use NullaWeb, :controller
|
||||||
|
alias Nulla.Models.User
|
||||||
|
|
||||||
def sign_in do
|
def sign_in_view(conn, _params) do
|
||||||
|
render(conn, :sign_in, layout: false)
|
||||||
end
|
end
|
||||||
|
|
||||||
def sign_out do
|
def sign_in(conn, _params) do
|
||||||
|
conn
|
||||||
|
|> redirect(to: "/")
|
||||||
end
|
end
|
||||||
|
|
||||||
def sign_up do
|
def sign_out(conn, _params) do
|
||||||
|
conn
|
||||||
|
|> configure_session(drop: true)
|
||||||
|
|> put_flash(:info, "You have been logged out.")
|
||||||
|
|> redirect(to: "/")
|
||||||
|
end
|
||||||
|
|
||||||
|
def sign_up_view(conn, _params) do
|
||||||
|
render(conn, :sign_up, layout: false)
|
||||||
|
end
|
||||||
|
|
||||||
|
def sign_up(conn, params) do
|
||||||
|
case User.create_user(params) do
|
||||||
|
{:ok, user} ->
|
||||||
|
conn
|
||||||
|
|> put_session(:user_id, user.id)
|
||||||
|
|> put_flash(:info, "You're registred!")
|
||||||
|
|> redirect(to: "/")
|
||||||
|
|
||||||
|
{:error, %Ecto.Changeset{} = changeset} ->
|
||||||
|
render(conn, "sign_up.html", changeset: changeset)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
7
lib/nulla_web/controllers/page_controller.ex
Normal file
7
lib/nulla_web/controllers/page_controller.ex
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
defmodule NullaWeb.PageController do
|
||||||
|
use NullaWeb, :controller
|
||||||
|
|
||||||
|
def home(conn, _params) do
|
||||||
|
render(conn, :home, layout: false)
|
||||||
|
end
|
||||||
|
end
|
|
@ -17,6 +17,8 @@ defmodule NullaWeb.Router do
|
||||||
scope "/", NullaWeb do
|
scope "/", NullaWeb do
|
||||||
pipe_through :browser
|
pipe_through :browser
|
||||||
|
|
||||||
|
get "/", PageController, :home
|
||||||
|
|
||||||
get "/.well-known/host-meta", HostmetaController, :index
|
get "/.well-known/host-meta", HostmetaController, :index
|
||||||
get "/.well-known/webfinger", WebfingerController, :index
|
get "/.well-known/webfinger", WebfingerController, :index
|
||||||
get "/.well-known/nodeinfo", NodeinfoController, :index
|
get "/.well-known/nodeinfo", NodeinfoController, :index
|
||||||
|
@ -24,9 +26,11 @@ defmodule NullaWeb.Router do
|
||||||
post "/inbox", InboxController, :inbox
|
post "/inbox", InboxController, :inbox
|
||||||
|
|
||||||
scope "/auth" do
|
scope "/auth" do
|
||||||
get "/sign_in", AuthController, :sign_in
|
get "/sign_in", AuthController, :sign_in_view
|
||||||
post "/sign_out", AuthController, :sign_out
|
post "/sign_in", AuthController, :sign_in
|
||||||
get "/sign_up", AuthController, :sign_up
|
delete "/sign_out", AuthController, :sign_out
|
||||||
|
get "/sign_up", AuthController, :sign_up_view
|
||||||
|
post "/sign_up", AuthController, :sign_up
|
||||||
end
|
end
|
||||||
|
|
||||||
scope "/users/:username" do
|
scope "/users/:username" do
|
||||||
|
|
9
test/nulla_web/controllers/page_controller_test.exs
Normal file
9
test/nulla_web/controllers/page_controller_test.exs
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
defmodule NullaWeb.PageControllerTest do
|
||||||
|
use NullaWeb.ConnCase
|
||||||
|
|
||||||
|
test "GET /", %{conn: conn} do
|
||||||
|
conn = get(conn, ~p"/")
|
||||||
|
|
||||||
|
assert String.length(html_response(conn, 200)) > 0
|
||||||
|
end
|
||||||
|
end
|
Loading…
Add table
Add a link
Reference in a new issue