| 46 | } |
| 47 | |
| 48 | func ReadPasswordsFile(path string, secret []byte, sessionTimeout int) (*Users, error) { |
| 49 | users := &Users{ |
| 50 | Lookup: map[string]string{}, |
| 51 | sessionTimeout: sessionTimeout, |
| 52 | store: sessions.NewCookieStore(secret), |
| 53 | } |
| 54 | if path == "" { |
| 55 | log.Info().Msg("Users file not specified") |
| 56 | return users, nil |
| 57 | } |
| 58 | |
| 59 | file, err := os.Open(path) |
| 60 | if err != nil { |
| 61 | return users, err |
| 62 | } |
| 63 | defer file.Close() |
| 64 | userPws, err := read(file) |
| 65 | if err != nil { |
| 66 | return users, err |
| 67 | } |
| 68 | |
| 69 | for _, record := range userPws { |
| 70 | users.Lookup[record.Name] = record.Pass |
| 71 | } |
| 72 | log.Info().Int("amount", len(users.Lookup)).Msg("Loaded Users") |
| 73 | return users, nil |
| 74 | } |
| 75 | |
| 76 | type Response struct { |
| 77 | Message string `json:"message"` |