aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntoni Sawicki <tenox@google.com>2022-03-27 01:51:23 -0700
committerAntoni Sawicki <tenox@google.com>2022-03-27 01:51:23 -0700
commite5f7f7115df5ba6ee938b45abf08d13de64cbe27 (patch)
treeb219d21c183d78f2847a23207afca829c36eb04f
parent3e97e42fc630ce545f8e5d9a07950b02b8650637 (diff)
downloadwfm-e5f7f7115df5ba6ee938b45abf08d13de64cbe27.tar.gz
add string to bool access func
-rw-r--r--users.go36
1 files changed, 21 insertions, 15 deletions
diff --git a/users.go b/users.go
index bd717dd..e26d423 100644
--- a/users.go
+++ b/users.go
@@ -51,17 +51,15 @@ func manageUsers() {
case "list":
listUsers()
case "add":
- addUser(flag.Arg(2), flag.Arg(3))
+ addUser(flag.Arg(2), rwStrBool(flag.Arg(3)))
case "delete":
delUser(flag.Arg(2))
case "passwd":
pwdUser(flag.Arg(2))
- case "setro":
- setUser(flag.Arg(2), false)
- case "setrw":
- setUser(flag.Arg(2), true)
+ case "access":
+ setUser(flag.Arg(2), rwStrBool(flag.Arg(3)))
default:
- fmt.Println("usage: user <list|add|delete|passwd|setrw|setro> [username] [rw|ro]")
+ fmt.Println("usage: user <list|add|delete|passwd|access> [username] [rw|ro]")
}
}
@@ -71,21 +69,16 @@ func listUsers() {
}
}
-func addUser(usr, rw string) {
- if usr == "" || rw == "" {
+func addUser(usr string, rw bool) {
+ if usr == "" {
log.Fatal("user add requires username and ro/rw\n")
}
- var bRW bool
- if rw == "rw" {
- bRW = true
- }
-
fmt.Print("Password: ")
var pwd string
fmt.Scanln(&pwd)
salt := rndStr(8)
hash := fmt.Sprintf("%x", sha256.Sum256([]byte(salt+pwd)))
- users = append(users, userDB{User: usr, Salt: salt, Hash: hash, RW: bRW})
+ users = append(users, userDB{User: usr, Salt: salt, Hash: hash, RW: rw})
saveUsers()
}
@@ -129,7 +122,7 @@ func pwdUser(usr string) {
}
func setUser(usr string, rw bool) {
- if usr == "" || rw == "" {
+ if usr == "" {
log.Fatal("user add requires username and ro/rw\n")
}
chg := false
@@ -146,6 +139,19 @@ func setUser(usr string, rw bool) {
saveUsers()
}
+func rwStrBool(acc string) bool {
+ var rw bool
+ switch acc {
+ case "rw":
+ rw = true
+ case "ro":
+ rw = false
+ default:
+ log.Fatal("access must be either 'ro' or 'rw'")
+ }
+ return rw
+}
+
func rndStr(len int) string {
b := make([]byte, len)
rand.Read(b)