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)
 	}