CHANGE: refractor + refined user routes, added change pw form and function

This commit is contained in:
2025-02-23 15:46:34 +01:00
parent 64468271d1
commit fdd6416ad9
12 changed files with 331 additions and 188 deletions

View File

@@ -6,11 +6,11 @@ import (
)
type User struct {
CardUID string `json:"card_uid"`
Name string `json:"name"`
Vorname string `json:"vorname"`
PersonalNummer int `json:"personal_nummer"`
Arbeitszeit float32 `json:"arbeitszeit"`
CardUID string `json:"card_uid"`
Name string `json:"name"`
Vorname string `json:"vorname"`
PersonalNummer int `json:"personal_nummer"`
Arbeitszeit float32 `json:"arbeitszeit"`
}
func (u *User) GetAll() ([]User, error) {
@@ -67,7 +67,7 @@ func (u *User) Logout() error {
return nil
}
func (u *User) GetByPersonalNummer (personalNummer int) (User, error) {
func (u *User) GetByPersonalNummer(personalNummer int) (User, error) {
var user User
qStr, err := DB.Prepare((`SELECT personal_nummer, card_uid, vorname, nachname, arbeitszeit_per_tag FROM personal_daten WHERE personal_nummer = $1;`))
@@ -76,7 +76,7 @@ func (u *User) GetByPersonalNummer (personalNummer int) (User, error) {
}
err = qStr.QueryRow(personalNummer).Scan(&user.PersonalNummer, &user.CardUID, &user.Vorname, &user.Name, &user.Arbeitszeit)
if err != nil{
if err != nil {
return user, err
}
return user, nil
@@ -97,3 +97,21 @@ func (u *User) Login(password string) bool {
}
return loginSuccess
}
// checks if old password matches and changes to new password
//
// returns auth(bool), error
func (u *User) ChangePass(password, newPassword string) (bool, error) {
if !u.Login(password) {
return false, nil
}
qStr, err := DB.Prepare((`UPDATE user_password SET pass_hash = crypt($2, gen_salt('bf')) WHERE personal_nummer = $1;`))
if err != nil {
return false, err
}
_, err = qStr.Exec(u.PersonalNummer, newPassword)
if err != nil {
return false, err
}
return true, nil
}