Add ability to provide initial API key on service standup (#1883)

pull/1898/head
Stuart Small 2020-07-01 21:06:31 -06:00 committed by GitHub
parent bf76f86ea4
commit afa00e2a9c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 12 additions and 1 deletions

View File

@ -34,6 +34,11 @@ const DefaultAdminUsername = "admin"
// randomly // randomly
const InitialAdminPassword = "GOPHISH_INITIAL_ADMIN_PASSWORD" const InitialAdminPassword = "GOPHISH_INITIAL_ADMIN_PASSWORD"
// InitialAdminApiToken is the environment variable that specifies the
// API token to seed the initial root login instead of generating one
// randomly
const InitialAdminApiToken = "GOPHISH_INITIAL_ADMIN_API_TOKEN"
const ( const (
CampaignInProgress string = "In progress" CampaignInProgress string = "In progress"
CampaignQueued string = "Queued" CampaignQueued string = "Queued"
@ -208,7 +213,13 @@ func Setup(c *config.Config) error {
RoleID: adminRole.ID, RoleID: adminRole.ID,
PasswordChangeRequired: true, PasswordChangeRequired: true,
} }
if envToken := os.Getenv(InitialAdminApiToken); envToken != "" {
adminUser.ApiKey = envToken
} else {
adminUser.ApiKey = auth.GenerateSecureKey(auth.APIKeyLength) adminUser.ApiKey = auth.GenerateSecureKey(auth.APIKeyLength)
}
err = db.Save(&adminUser).Error err = db.Save(&adminUser).Error
if err != nil { if err != nil {
log.Error(err) log.Error(err)