Просмотр исходного кода

Only create admin user specified in config file when there are no users in the database, Fixes #1680

Torkel Ödegaard 10 лет назад
Родитель
Сommit
a96e4a343c
1 измененных файлов с 21 добавлено и 16 удалено
  1. 21 16
      pkg/services/sqlstore/sqlstore.go

+ 21 - 16
pkg/services/sqlstore/sqlstore.go

@@ -33,24 +33,29 @@ var (
 )
 )
 
 
 func EnsureAdminUser() {
 func EnsureAdminUser() {
-	adminQuery := m.GetUserByLoginQuery{LoginOrEmail: setting.AdminUser}
-
-	if err := bus.Dispatch(&adminQuery); err == m.ErrUserNotFound {
-		cmd := m.CreateUserCommand{}
-		cmd.Login = setting.AdminUser
-		cmd.Email = setting.AdminUser + "@localhost"
-		cmd.Password = setting.AdminPassword
-		cmd.IsAdmin = true
-
-		if err = bus.Dispatch(&cmd); err != nil {
-			log.Error(3, "Failed to create default admin user", err)
-			return
-		}
+	statsQuery := m.GetSystemStatsQuery{}
+
+	if err := bus.Dispatch(&statsQuery); err != nil {
+		log.Fatal(3, "Could not determine if admin user exists: %v", err)
+		return
+	}
 
 
-		log.Info("Created default admin user: %v", setting.AdminUser)
-	} else if err != nil {
-		log.Error(3, "Could not determine if admin user exists: %v", err)
+	if statsQuery.Result.UserCount > 0 {
+		return
 	}
 	}
+
+	cmd := m.CreateUserCommand{}
+	cmd.Login = setting.AdminUser
+	cmd.Email = setting.AdminUser + "@localhost"
+	cmd.Password = setting.AdminPassword
+	cmd.IsAdmin = true
+
+	if err := bus.Dispatch(&cmd); err != nil {
+		log.Error(3, "Failed to create default admin user", err)
+		return
+	}
+
+	log.Info("Created default admin user: %v", setting.AdminUser)
 }
 }
 
 
 func NewEngine() {
 func NewEngine() {