aboutsummaryrefslogtreecommitdiff
path: root/go-src/user.go
diff options
context:
space:
mode:
Diffstat (limited to 'go-src/user.go')
-rw-r--r--go-src/user.go43
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
+}