CHANGE: updated to use personal number as login
This commit is contained in:
@@ -5,6 +5,7 @@ import (
|
|||||||
"arbeitszeitmessung/templates"
|
"arbeitszeitmessung/templates"
|
||||||
"log"
|
"log"
|
||||||
"net/http"
|
"net/http"
|
||||||
|
"strconv"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/alexedwards/scs/v2"
|
"github.com/alexedwards/scs/v2"
|
||||||
@@ -39,15 +40,24 @@ func loginUser(w http.ResponseWriter, r *http.Request){
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
log.Println("Error parsing form!", err)
|
log.Println("Error parsing form!", err)
|
||||||
http.Error(w, "Internal error", http.StatusBadRequest)
|
http.Error(w, "Internal error", http.StatusBadRequest)
|
||||||
|
return
|
||||||
}
|
}
|
||||||
card_uid := r.FormValue("card_uid")
|
_personal_nummer := r.FormValue("personal_nummer")
|
||||||
if(card_uid == ""){
|
if(_personal_nummer == ""){
|
||||||
log.Println("No card_uid provided!")
|
log.Println("No personal_nummer provided!")
|
||||||
http.Error(w, "No card_uid provided", http.StatusBadRequest)
|
http.Error(w, "No personal_nummer provided", http.StatusBadRequest)
|
||||||
|
return
|
||||||
}
|
}
|
||||||
user, err := (*models.User).GetByCardUID(nil, card_uid)
|
personal_nummer, err := strconv.Atoi(_personal_nummer)
|
||||||
if(err != nil){
|
if(err != nil){
|
||||||
log.Println("No user found under this card_uid!")
|
log.Println("Cannot parse personal nubmer!")
|
||||||
|
http.Error(w, "Cannot parse number", http.StatusBadRequest)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
user, err := (*models.User).GetByPersonalNummer(nil, personal_nummer)
|
||||||
|
if(err != nil){
|
||||||
|
log.Println("No user found under this personal number!")
|
||||||
http.Error(w, "No user found!", http.StatusNotFound)
|
http.Error(w, "No user found!", http.StatusNotFound)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -9,12 +9,11 @@ type User struct {
|
|||||||
CardUID string `json:"card_uid"`
|
CardUID string `json:"card_uid"`
|
||||||
Name string `json:"name"`
|
Name string `json:"name"`
|
||||||
Vorname string `json:"vorname"`
|
Vorname string `json:"vorname"`
|
||||||
HauptbeschaeftigungsOrt int8 `json:"hauptbeschaeftigungsort"`
|
|
||||||
PersonalNummer int `json:"personal_nummer"`
|
PersonalNummer int `json:"personal_nummer"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (u *User) GetAll() ([]User, error) {
|
func (u *User) GetAll() ([]User, error) {
|
||||||
qStr, err := DB.Prepare((`SELECT card_uid, vorname, nachname, hauptbeschaeftigung_ort FROM personal_daten;`))
|
qStr, err := DB.Prepare((`SELECT card_uid, vorname, nachname FROM personal_daten;`))
|
||||||
var users []User
|
var users []User
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Printf("Error preparing query statement %v\n", err)
|
fmt.Printf("Error preparing query statement %v\n", err)
|
||||||
@@ -28,7 +27,7 @@ func (u *User) GetAll() ([]User, error) {
|
|||||||
defer rows.Close()
|
defer rows.Close()
|
||||||
for rows.Next() {
|
for rows.Next() {
|
||||||
var user User
|
var user User
|
||||||
if err := rows.Scan(&user.CardUID, &user.Vorname, &user.Name, &user.HauptbeschaeftigungsOrt); err != nil {
|
if err := rows.Scan(&user.CardUID, &user.Vorname, &user.Name); err != nil {
|
||||||
return users, nil
|
return users, nil
|
||||||
}
|
}
|
||||||
users = append(users, user)
|
users = append(users, user)
|
||||||
@@ -69,11 +68,11 @@ func (u *User) Logout() error {
|
|||||||
|
|
||||||
func (u *User) GetByCardUID(card_uid string) (User, error) {
|
func (u *User) GetByCardUID(card_uid string) (User, error) {
|
||||||
var user User
|
var user User
|
||||||
qStr, err := DB.Prepare((`SELECT personal_nummer, card_uid, vorname, nachname, hauptbeschaeftigung_ort FROM personal_daten WHERE card_uid = $1;`))
|
qStr, err := DB.Prepare((`SELECT personal_nummer, card_uid, vorname, nachname FROM personal_daten WHERE card_uid = $1;`))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return user, err
|
return user, err
|
||||||
}
|
}
|
||||||
err = qStr.QueryRow(card_uid).Scan(&user.PersonalNummer, &user.CardUID, &user.Vorname, &user.Name, &user.HauptbeschaeftigungsOrt)
|
err = qStr.QueryRow(card_uid).Scan(&user.PersonalNummer, &user.CardUID, &user.Vorname, &user.Name)
|
||||||
if err != nil{
|
if err != nil{
|
||||||
return user, err
|
return user, err
|
||||||
}
|
}
|
||||||
@@ -83,11 +82,11 @@ func (u *User) GetByCardUID(card_uid string) (User, error) {
|
|||||||
func (u *User) GetByPersonalNummer (personalNummer int) (User, error) {
|
func (u *User) GetByPersonalNummer (personalNummer int) (User, error) {
|
||||||
var user User
|
var user User
|
||||||
|
|
||||||
qStr, err := DB.Prepare((`SELECT personal_nummer, card_uid, vorname, nachname, hauptbeschaeftigung_ort FROM personal_daten WHERE personal_nummer = $1;`))
|
qStr, err := DB.Prepare((`SELECT personal_nummer, card_uid, vorname, nachname FROM personal_daten WHERE personal_nummer = $1;`))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return user, err
|
return user, err
|
||||||
}
|
}
|
||||||
err = qStr.QueryRow(personalNummer).Scan(&user.PersonalNummer, &user.CardUID, &user.Vorname, &user.Name, &user.HauptbeschaeftigungsOrt)
|
err = qStr.QueryRow(personalNummer).Scan(&user.PersonalNummer, &user.CardUID, &user.Vorname, &user.Name)
|
||||||
if err != nil{
|
if err != nil{
|
||||||
return user, err
|
return user, err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ package templates
|
|||||||
templ LoginForm(){
|
templ LoginForm(){
|
||||||
@Style()
|
@Style()
|
||||||
<form method="POST">
|
<form method="POST">
|
||||||
<input name="card_uid" type="text" placeholder="card_uid"/>
|
<input name="personal_nummer" type="text" placeholder="personal_nummer"/>
|
||||||
<input name="password" type="passwort" placeholder="password"/>
|
<input name="password" type="passwort" placeholder="password"/>
|
||||||
<button type="submit">Send</button>
|
<button type="submit">Send</button>
|
||||||
</form>
|
</form>
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ func LoginForm() templ.Component {
|
|||||||
if templ_7745c5c3_Err != nil {
|
if templ_7745c5c3_Err != nil {
|
||||||
return templ_7745c5c3_Err
|
return templ_7745c5c3_Err
|
||||||
}
|
}
|
||||||
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 1, "<form method=\"POST\"><input name=\"card_uid\" type=\"text\" placeholder=\"card_uid\"> <input name=\"password\" type=\"passwort\" placeholder=\"password\"> <button type=\"submit\">Send</button></form>")
|
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 1, "<form method=\"POST\"><input name=\"personal_nummer\" type=\"text\" placeholder=\"personal_nummer\"> <input name=\"password\" type=\"passwort\" placeholder=\"password\"> <button type=\"submit\">Send</button></form>")
|
||||||
if templ_7745c5c3_Err != nil {
|
if templ_7745c5c3_Err != nil {
|
||||||
return templ_7745c5c3_Err
|
return templ_7745c5c3_Err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
set -e # Exit on error
|
set -e # Exit on error
|
||||||
|
|
||||||
echo "Creating PostgreSQL user and setting permissions..."
|
echo "Creating PostgreSQL user and setting permissions... $POSTGRES_USER for API user $POSTGRES_API_USER"
|
||||||
|
|
||||||
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
|
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
|
||||||
CREATE USER $POSTGRES_API_USER WITH ENCRYPTED PASSWORD '$POSTGRES_API_PASSWORD';
|
CREATE USER $POSTGRES_API_USER WITH ENCRYPTED PASSWORD '$POSTGRES_API_PASSWORD';
|
||||||
|
|||||||
@@ -6,9 +6,6 @@ services:
|
|||||||
env_file:
|
env_file:
|
||||||
- .env
|
- .env
|
||||||
environment:
|
environment:
|
||||||
POSTGRES_USER: ${POSTGRES_USER}
|
|
||||||
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
|
||||||
POSTGRES_DB: ${POSTGRES_DB}
|
|
||||||
PGDATA: /var/lib/postgresql/data/pg_data
|
PGDATA: /var/lib/postgresql/data/pg_data
|
||||||
volumes:
|
volumes:
|
||||||
- ${POSTGRES_PATH}:/var/lib/postgresql/data
|
- ${POSTGRES_PATH}:/var/lib/postgresql/data
|
||||||
|
|||||||
Reference in New Issue
Block a user