diff options
Diffstat (limited to 'go-src/user.go')
| -rw-r--r-- | go-src/user.go | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/go-src/user.go b/go-src/user.go new file mode 100644 index 0000000..259c044 --- /dev/null +++ b/go-src/user.go @@ -0,0 +1,43 @@ +package ctfc + +import ( + "bytes" + "os" + + "gitlab.com/Syndamia/ctfc/go-src/folderPaths" +) + +var loggedInUser User + +type User struct { + Username string + Name string +} + +func createUser(data []string) { + // TODO: Password hashing + f, _ := os.Create(folderPaths.FileAtUsersFolder(data[0])) + f.WriteString(data[0] + "\n" + data[1] + "\n" + data[2]) + f.Close() +} + +func logInUser(username string, password string) bool { + if validatePassword(username, password) { + loggedInUser = getUser(username) + return true + } + return false +} + +func getUser(username string) User { + f, _ := os.ReadFile(folderPaths.FileAtUsersFolder(username)) + values := bytes.Split(f, []byte("\n")) + return User{string(values[0]), string(values[2])} +} + +func validatePassword(username string, password string) bool { + // TODO: Implement hashing + f, _ := os.ReadFile(folderPaths.FileAtUsersFolder(username)) + passHash := bytes.Split(f, []byte("\n"))[0] + return string(passHash) == password +} |
