fix: superadmin beim ersten Start anlegen + Installer zeigt echte Passwörter
- seedDefaultUsers: superadmin (Rolle superadmin) zu Default-Usern hinzugefügt → wird beim ersten Backend-Start mit Zufallspasswort angelegt - Installer: Passwörter werden nach dem Deployment aus dem Journal gelesen (journalctl -u archivmail) statt falschen Platzhalter 'archivmailrockz' Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -524,6 +524,10 @@ func seedDefaultUsers(users *userstore.Store, logger *slog.Logger) error {
|
|||||||
return nil // already seeded
|
return nil // already seeded
|
||||||
}
|
}
|
||||||
|
|
||||||
|
superadminPw, err := randomPassword()
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("generate superadmin password: %w", err)
|
||||||
|
}
|
||||||
adminPw, err := randomPassword()
|
adminPw, err := randomPassword()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("generate admin password: %w", err)
|
return fmt.Errorf("generate admin password: %w", err)
|
||||||
@@ -534,6 +538,7 @@ func seedDefaultUsers(users *userstore.Store, logger *slog.Logger) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
defaults := []userstore.CreateUserRequest{
|
defaults := []userstore.CreateUserRequest{
|
||||||
|
{Username: "superadmin", Email: "superadmin@archivmail.local", Password: superadminPw, Role: userstore.RoleSuperAdmin},
|
||||||
{Username: "admin", Email: "admin@archivmail.local", Password: adminPw, Role: userstore.RoleAdmin},
|
{Username: "admin", Email: "admin@archivmail.local", Password: adminPw, Role: userstore.RoleAdmin},
|
||||||
{Username: "auditor", Email: "auditor@archivmail.local", Password: auditorPw, Role: userstore.RoleAuditor},
|
{Username: "auditor", Email: "auditor@archivmail.local", Password: auditorPw, Role: userstore.RoleAuditor},
|
||||||
}
|
}
|
||||||
@@ -548,8 +553,9 @@ func seedDefaultUsers(users *userstore.Store, logger *slog.Logger) error {
|
|||||||
fmt.Println("╔══════════════════════════════════════════════════════════════╗")
|
fmt.Println("╔══════════════════════════════════════════════════════════════╗")
|
||||||
fmt.Println("║ ARCHIVMAIL — ERSTMALIGE EINRICHTUNG ║")
|
fmt.Println("║ ARCHIVMAIL — ERSTMALIGE EINRICHTUNG ║")
|
||||||
fmt.Println("║ Initiale Zugangsdaten (NUR EINMAL ANGEZEIGT): ║")
|
fmt.Println("║ Initiale Zugangsdaten (NUR EINMAL ANGEZEIGT): ║")
|
||||||
fmt.Printf( "║ admin : %-50s ║\n", adminPw)
|
fmt.Printf( "║ superadmin : %-47s ║\n", superadminPw)
|
||||||
fmt.Printf( "║ auditor : %-50s ║\n", auditorPw)
|
fmt.Printf( "║ admin : %-47s ║\n", adminPw)
|
||||||
|
fmt.Printf( "║ auditor : %-47s ║\n", auditorPw)
|
||||||
fmt.Println("║ Passwörter sofort nach dem ersten Login ändern! ║")
|
fmt.Println("║ Passwörter sofort nach dem ersten Login ändern! ║")
|
||||||
fmt.Println("╚══════════════════════════════════════════════════════════════╝")
|
fmt.Println("╚══════════════════════════════════════════════════════════════╝")
|
||||||
fmt.Println()
|
fmt.Println()
|
||||||
|
|||||||
Reference in New Issue
Block a user