mirror of https://github.com/portainer/portainer
fix(api): prevent the creation of multiple admin users (#1251)
parent
9c10a1def2
commit
249bcf5bac
|
@ -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{
|
||||||
|
|
Loading…
Reference in New Issue