# Script para criar senha segura para SUPERADMIN # Gera senha aleatoria forte e atualiza no banco Write-Host "Gerando senha segura para SUPERADMIN..." -ForegroundColor Cyan Write-Host "" # Gera senha forte (16 caracteres com maiusculas, minusculas, numeros e especiais) Add-Type -AssemblyName System.Web $newPassword = [System.Web.Security.Membership]::GeneratePassword(20, 5) # Garante que tem todos os tipos de caracteres $newPassword = "Ag@" + $newPassword + "2025!" Write-Host "Nova senha gerada: $newPassword" -ForegroundColor Green Write-Host "" Write-Host "IMPORTANTE: Anote esta senha em local seguro!" -ForegroundColor Yellow Write-Host "" # Salva em arquivo criptografado (apenas para emergencia) $securePasswordFile = "g:\Projetos\aggios-app\backups\.superadmin_password.txt" $newPassword | Out-File -FilePath $securePasswordFile -Force Write-Host "Senha salva em: $securePasswordFile" -ForegroundColor Cyan Write-Host "(Arquivo protegido - acesso restrito)" -ForegroundColor Gray Write-Host "" # Gera hash bcrypt usando o backend em execucao Write-Host "Gerando hash bcrypt..." -ForegroundColor Yellow # Cria script Go temporario para gerar o hash $goScript = @" package main import ( "fmt" "golang.org/x/crypto/bcrypt" ) func main() { hash, _ := bcrypt.GenerateFromPassword([]byte("$newPassword"), bcrypt.DefaultCost) fmt.Print(string(hash)) } "@ # Salva e executa no container $goScript | Out-File -FilePath "g:\Projetos\aggios-app\backend\temp_hash.go" -Encoding UTF8 -Force # Copia para o container builder e gera o hash $hash = docker run --rm -v "g:\Projetos\aggios-app\backend:/app" -w /app golang:1.23-alpine sh -c "go run temp_hash.go" if ($LASTEXITCODE -eq 0) { Write-Host "Hash gerado com sucesso!" -ForegroundColor Green # Cria SQL file para atualizar $sqlContent = @" DELETE FROM users WHERE email = 'admin@aggios.app'; INSERT INTO users (id, email, password_hash, first_name, last_name, role, is_active, created_at, updated_at) VALUES ( gen_random_uuid(), 'admin@aggios.app', '$hash', 'Super', 'Admin', 'SUPERADMIN', true, NOW(), NOW() ); SELECT 'Usuario criado com sucesso!' as status; "@ $sqlFile = "g:\Projetos\aggios-app\backups\.update_superadmin.sql" $sqlContent | Out-File -FilePath $sqlFile -Encoding UTF8 -Force # Executa no banco docker cp $sqlFile aggios-postgres:/tmp/update_admin.sql docker exec aggios-postgres psql -U aggios aggios_db -f /tmp/update_admin.sql # Remove arquivo temporario Remove-Item "g:\Projetos\aggios-app\backend\temp_hash.go" -Force -ErrorAction SilentlyContinue Remove-Item $sqlFile -Force -ErrorAction SilentlyContinue Write-Host "" Write-Host "========================================" -ForegroundColor Green Write-Host " SENHA ATUALIZADA COM SUCESSO!" -ForegroundColor Green Write-Host "========================================" -ForegroundColor Green Write-Host "" Write-Host "Credenciais do SUPERADMIN:" -ForegroundColor Cyan Write-Host "Email: admin@aggios.app" -ForegroundColor White Write-Host "Senha: $newPassword" -ForegroundColor White Write-Host "" Write-Host "ANOTE ESTA SENHA EM LOCAL SEGURO!" -ForegroundColor Yellow Write-Host "" } else { Write-Host "Erro ao gerar hash!" -ForegroundColor Red exit 1 }