95 lines
3.3 KiB
PowerShell
95 lines
3.3 KiB
PowerShell
# 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
|
|
}
|