fix(api): prevent the creation of multiple admin users (#1251)

pull/1188/merge
Anthony Lapenna 2017-09-29 18:44:30 +02:00 committed by GitHub
parent 9c10a1def2
commit 249bcf5bac
1 changed files with 16 additions and 9 deletions

View File

@ -186,7 +186,6 @@ func main() {
applicationStatus := initStatus(authorizeEndpointMgmt, flags) applicationStatus := initStatus(authorizeEndpointMgmt, flags)
if *flags.Endpoint != "" { if *flags.Endpoint != "" {
var endpoints []portainer.Endpoint
endpoints, err := store.EndpointService.Endpoints() endpoints, err := store.EndpointService.Endpoints()
if err != nil { if err != nil {
log.Fatal(err) log.Fatal(err)
@ -229,17 +228,25 @@ func main() {
} }
if adminPasswordHash != "" { if adminPasswordHash != "" {
users, err := store.UserService.UsersByRole(portainer.AdministratorRole)
log.Printf("Creating admin user with password hash %s", adminPasswordHash)
user := &portainer.User{
Username: "admin",
Role: portainer.AdministratorRole,
Password: adminPasswordHash,
}
err := store.UserService.CreateUser(user)
if err != nil { if err != nil {
log.Fatal(err) log.Fatal(err)
} }
if len(users) == 0 {
log.Printf("Creating admin user with password hash %s", adminPasswordHash)
user := &portainer.User{
Username: "admin",
Role: portainer.AdministratorRole,
Password: adminPasswordHash,
}
err := store.UserService.CreateUser(user)
if err != nil {
log.Fatal(err)
}
} else {
log.Println("Instance already has an administrator user defined. Skipping admin password related flags.")
}
} }
var server portainer.Server = &http.Server{ var server portainer.Server = &http.Server{