50 lines
No EOL
955 B
Go
50 lines
No EOL
955 B
Go
package user
|
|
|
|
import (
|
|
"errors"
|
|
"fmt"
|
|
)
|
|
|
|
type UserClient interface {
|
|
register(username, password, email string) (bool, error)
|
|
login(username, password string) (bool, error)
|
|
}
|
|
|
|
type UserClientMemory struct {
|
|
users map[string]string
|
|
}
|
|
|
|
var u *UserClientMemory
|
|
|
|
func GetUserClient() *UserClientMemory {
|
|
if u == nil {
|
|
uc := UserClientMemory{}
|
|
uc.users = make(map[string]string)
|
|
uc.users["admin"]="password"
|
|
u = &uc
|
|
}
|
|
|
|
return u
|
|
}
|
|
|
|
func (uc *UserClientMemory) register(username, password, email string) (bool, error) {
|
|
if _, ok := uc.users[username]; ok {
|
|
return false, errors.New("Username already used")
|
|
}
|
|
|
|
uc.users[username] = password
|
|
return true, nil
|
|
}
|
|
|
|
func (uc UserClientMemory) login(username, password string) (bool, error) {
|
|
if val, ok := uc.users[username]; ok {
|
|
fmt.Println("Login for valide user")
|
|
if val == password {
|
|
return true, nil
|
|
}
|
|
} else {
|
|
fmt.Printf("User %v not found", username)
|
|
}
|
|
|
|
return false, nil
|
|
} |