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