aboutsummaryrefslogtreecommitdiff
path: root/go-src/user.go
diff options
context:
space:
mode:
authorSyndamia <kamen.d.mladenov@protonmail.com>2021-07-05 16:47:10 +0300
committerSyndamia <kamen.d.mladenov@protonmail.com>2021-07-05 16:47:10 +0300
commitacdb157282ac4705d8ec3ffab75b6bba2cc08550 (patch)
tree709c534d40edef276fda092b44765f1ba34ca2cc /go-src/user.go
parentdd0862468b9f76d0d335b0fb3720ce3cd364d9a9 (diff)
downloadctfc-acdb157282ac4705d8ec3ffab75b6bba2cc08550.tar
ctfc-acdb157282ac4705d8ec3ffab75b6bba2cc08550.tar.gz
ctfc-acdb157282ac4705d8ec3ffab75b6bba2cc08550.zip
Changed file structure and implemented rester file creation and login check
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
+}