diff --git a/server/usermgmt/usermgmt.go b/server/usermgmt/usermgmt.go index 6e99c67813992b3dd7326260469e07e4fbed1fb0..eea668834bdf53d380ab3cc3c2e958eb3fc682ce 100644 --- a/server/usermgmt/usermgmt.go +++ b/server/usermgmt/usermgmt.go @@ -4,6 +4,7 @@ import ( "flag" "fmt" "log" + "strconv" "time" "git.autistici.org/ale/djrandom/api" @@ -49,6 +50,24 @@ func setPassword(db services.Database, username string, pw string) { } } +func setInvites(db services.Database, username string, numInvites int) { + s, err := db.NewSession() + if err != nil { + log.Fatalf("Error connecting to db: %s", err) + } + defer s.Close() + + user, ok := db.GetUser(s, username) + if !ok { + log.Fatalf("User does not exist") + } + user.InvitesLeft = numInvites + err = db.PutUser(s, user) + if err != nil { + log.Fatalf("Error updating user: %s", err) + } +} + func createNewAuthKey(db services.Database, username string) { s, err := db.NewSession() if err != nil { @@ -82,6 +101,12 @@ func main() { createNewAuthKey(db, flag.Arg(1)) case "set-password": setPassword(db, flag.Arg(1), flag.Arg(2)) + case "set-invites": + n, err := strconv.Atoi(flag.Arg(2)) + if err != nil { + log.Fatalf("Could not parse number: %v", err) + } + setInvites(db, flag.Arg(1), n) default: log.Fatalf("Unknown command '%s'", cmd) }