CHANGE: updated to use personal number as login
This commit is contained in:
@@ -5,6 +5,7 @@ import (
|
||||
"arbeitszeitmessung/templates"
|
||||
"log"
|
||||
"net/http"
|
||||
"strconv"
|
||||
"time"
|
||||
|
||||
"github.com/alexedwards/scs/v2"
|
||||
@@ -39,15 +40,24 @@ func loginUser(w http.ResponseWriter, r *http.Request){
|
||||
if err != nil {
|
||||
log.Println("Error parsing form!", err)
|
||||
http.Error(w, "Internal error", http.StatusBadRequest)
|
||||
return
|
||||
}
|
||||
card_uid := r.FormValue("card_uid")
|
||||
if(card_uid == ""){
|
||||
log.Println("No card_uid provided!")
|
||||
http.Error(w, "No card_uid provided", http.StatusBadRequest)
|
||||
_personal_nummer := r.FormValue("personal_nummer")
|
||||
if(_personal_nummer == ""){
|
||||
log.Println("No personal_nummer provided!")
|
||||
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){
|
||||
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)
|
||||
}
|
||||
|
||||
|
||||
@@ -9,12 +9,11 @@ type User struct {
|
||||
CardUID string `json:"card_uid"`
|
||||
Name string `json:"name"`
|
||||
Vorname string `json:"vorname"`
|
||||
HauptbeschaeftigungsOrt int8 `json:"hauptbeschaeftigungsort"`
|
||||
PersonalNummer int `json:"personal_nummer"`
|
||||
}
|
||||
|
||||
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
|
||||
if err != nil {
|
||||
fmt.Printf("Error preparing query statement %v\n", err)
|
||||
@@ -28,7 +27,7 @@ func (u *User) GetAll() ([]User, error) {
|
||||
defer rows.Close()
|
||||
for rows.Next() {
|
||||
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
|
||||
}
|
||||
users = append(users, user)
|
||||
@@ -69,11 +68,11 @@ func (u *User) Logout() error {
|
||||
|
||||
func (u *User) GetByCardUID(card_uid string) (User, error) {
|
||||
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 {
|
||||
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{
|
||||
return user, err
|
||||
}
|
||||
@@ -83,11 +82,11 @@ func (u *User) GetByCardUID(card_uid string) (User, error) {
|
||||
func (u *User) GetByPersonalNummer (personalNummer int) (User, error) {
|
||||
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 {
|
||||
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{
|
||||
return user, err
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@ package templates
|
||||
templ LoginForm(){
|
||||
@Style()
|
||||
<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"/>
|
||||
<button type="submit">Send</button>
|
||||
</form>
|
||||
|
||||
@@ -33,7 +33,7 @@ func LoginForm() templ.Component {
|
||||
if templ_7745c5c3_Err != nil {
|
||||
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 {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#!/bin/bash
|
||||
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
|
||||
CREATE USER $POSTGRES_API_USER WITH ENCRYPTED PASSWORD '$POSTGRES_API_PASSWORD';
|
||||
|
||||
@@ -6,9 +6,6 @@ services:
|
||||
env_file:
|
||||
- .env
|
||||
environment:
|
||||
POSTGRES_USER: ${POSTGRES_USER}
|
||||
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
||||
POSTGRES_DB: ${POSTGRES_DB}
|
||||
PGDATA: /var/lib/postgresql/data/pg_data
|
||||
volumes:
|
||||
- ${POSTGRES_PATH}:/var/lib/postgresql/data
|
||||
|
||||
Reference in New Issue
Block a user