2017-09-25 19:22:30 +01:00
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
|
|
|
"encoding/json"
|
|
|
|
"io/ioutil"
|
|
|
|
)
|
|
|
|
|
|
|
|
// Configuration structure
|
|
|
|
type Config struct {
|
|
|
|
Name string
|
|
|
|
Host string
|
|
|
|
Email string
|
|
|
|
Description string
|
|
|
|
Image string
|
|
|
|
PodcastUrl string
|
|
|
|
}
|
|
|
|
|
|
|
|
// Single use structure
|
|
|
|
type User struct {
|
|
|
|
Username string
|
|
|
|
Hash string
|
|
|
|
}
|
|
|
|
|
|
|
|
// Read config file and make values accesible
|
2017-09-29 19:29:36 +01:00
|
|
|
func ReadConfig() (c Config, err error) {
|
2017-09-25 19:22:30 +01:00
|
|
|
// Read config.json
|
|
|
|
d, err := ioutil.ReadFile("assets/config/config.json")
|
|
|
|
if err != nil {
|
2017-09-29 19:29:36 +01:00
|
|
|
return
|
2017-09-25 19:22:30 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
err = json.Unmarshal(d, &c)
|
|
|
|
if err != nil {
|
2017-09-29 19:29:36 +01:00
|
|
|
return
|
2017-09-25 19:22:30 +01:00
|
|
|
}
|
|
|
|
|
2017-09-29 19:29:36 +01:00
|
|
|
return
|
2017-09-25 19:22:30 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
// Return single users username & passsword *hash*
|
2017-09-29 19:29:36 +01:00
|
|
|
func AuthUser(username string, password string) (authd bool) {
|
2017-09-25 19:22:30 +01:00
|
|
|
// Read users json file
|
|
|
|
d, err := ioutil.ReadFile("assets/config/users.json")
|
|
|
|
if err != nil {
|
|
|
|
panic(err)
|
|
|
|
}
|
|
|
|
|
|
|
|
var u interface{}
|
|
|
|
err = json.Unmarshal(d, &u) // Unmarshal into interface
|
|
|
|
|
|
|
|
// Iterate through map until we find matching username
|
|
|
|
users := u.(map[string]interface{})
|
|
|
|
for k, v := range users {
|
2017-09-29 19:29:36 +01:00
|
|
|
if k == username && v.(string) == password {
|
|
|
|
authd = true
|
2017-09-25 19:22:30 +01:00
|
|
|
}
|
|
|
|
}
|
2017-09-29 19:29:36 +01:00
|
|
|
return // Returns whether user is authenticated or not
|
2017-09-25 19:22:30 +01:00
|
|
|
}
|