CHANGE: refractor + refined user routes, added change pw form and function
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user