From acdb157282ac4705d8ec3ffab75b6bba2cc08550 Mon Sep 17 00:00:00 2001 From: Syndamia Date: Mon, 5 Jul 2021 16:47:10 +0300 Subject: Changed file structure and implemented rester file creation and login check --- go-src/user.go | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 go-src/user.go (limited to 'go-src/user.go') 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 +} -- cgit v1.2.3