From 2261d27c9435b1fcf17c622d04540f78a4aaa688 Mon Sep 17 00:00:00 2001 From: Manfred Touron Date: Wed, 15 Nov 2017 11:24:48 +0100 Subject: [PATCH] Allow to set the first invite token (for testing) --- db.go | 7 ++++++- main.go | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/db.go b/db.go index fc9520e..218d24b 100644 --- a/db.go +++ b/db.go @@ -4,6 +4,7 @@ import ( "fmt" "log" "net/url" + "os" "strings" "time" @@ -183,12 +184,16 @@ func dbInit(db *gorm.DB) error { db.Table("users").Count(&count) if count == 0 { // if no admin, create an account for the first connection + inviteToken := RandStringBytes(16) + if os.Getenv("SSHPORTAL_DEFAULT_ADMIN_INVITE_TOKEN") != "" { + inviteToken = os.Getenv("SSHPORTAL_DEFAULT_ADMIN_INVITE_TOKEN") + } user := User{ Name: "Administrator", Email: "admin@sshportal", Comment: "created by sshportal", IsAdmin: true, - InviteToken: RandStringBytes(16), + InviteToken: inviteToken, Groups: []*UserGroup{&defaultUserGroup}, } db.Create(&user) diff --git a/main.go b/main.go index 88f3041..cc6dd9e 100644 --- a/main.go +++ b/main.go @@ -191,7 +191,7 @@ func server(c *cli.Context) error { // handle invite "links" if strings.HasPrefix(username, "invite:") { inputToken := strings.Split(username, ":")[1] - if len(inputToken) == 16 { + if len(inputToken) > 0 { db.Where("invite_token = ?", inputToken).First(&user) } if user.ID > 0 {