diff --git a/controller/backend.sh b/controller/backend.sh index ef423f7..8f60e49 100644 --- a/controller/backend.sh +++ b/controller/backend.sh @@ -3,9 +3,10 @@ route GET "/backend" backendHome backendHome() { requireLoggedIn + htmlContent endHeaders - + title="Backend" - content="$(template "templates/backend.fragment.templ")" + content="$(getRecipesByUsername "$username" | template "templates/backend.fragment.templ")" template "templates/layout.html.templ" } diff --git a/controller/users.sh b/controller/users.sh index a800787..91482db 100644 --- a/controller/users.sh +++ b/controller/users.sh @@ -2,22 +2,34 @@ route GET "/login" loginForm loginForm() { - htmlContent - endHeaders - - title="Login" - content="$(template "templates/login.fragment.templ")" - template "templates/layout.html.templ" + if isLoggedIn; then + redirect "/backend" + endHeaders + else + htmlContent + endHeaders + + title="Login" + fail=0 + test "$(queryString "status")" + content="$(template "templates/login.fragment.templ")" + template "templates/layout.html.templ" + fi } route POST "/login" login login() { + cacheFormData + username="$(formData "username")" password="$(formData "password")" - + if loginUser "$username" "$password"; then - echo "ok" + setLoggedIn "$username" + redirect "/backend" else - echo "ko" + redirect "/login?status=fail" fi + + endHeaders } diff --git a/data/recipes.sh b/data/recipes.sh new file mode 100644 index 0000000..50bac91 --- /dev/null +++ b/data/recipes.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +getRecipesByUsername() { + local username="$1" + + query <Hi You are {{ print $username }}. + + diff --git a/templates/login.fragment.templ b/templates/login.fragment.templ index 46a92d9..537e1bb 100644 --- a/templates/login.fragment.templ +++ b/templates/login.fragment.templ @@ -1,4 +1,7 @@
+ {{ if test $(queryString "status" = "fail"); then }} +

Login failed

+ {{ fi }}


diff --git a/utils/auth.sh b/utils/auth.sh index 5960055..bc6cfb0 100644 --- a/utils/auth.sh +++ b/utils/auth.sh @@ -4,6 +4,11 @@ _sessionKeyUsername="username" username="" +setLoggedIn() { + startSession + setSessionValue "$_sessionKeyUsername" "$1" +} + isLoggedIn() { username="$(getSessionValue "$_sessionKeyUsername")" test ! -z "$username"