Antes de começarmos, precisamos ter nossas credenciais da Veracode, e nesse caso, precisamos que seja de um usuário com as roles para criar usuários.
A ideia do script e pegar uma lista de usuários, que vão estar organizados em um arquivo CSV formatado por linhas e com as colunas:
- Nome
- Sobrenome
Nosso script vai receber o caminho desse CSV e utilizar o Wrapper para fazer a criação deles, pegando cada uma das linhas com valores.
Além das ferramentas da Veracode, vamos utilizar em especial o comando Foreach do Powershell, junto a função Import-Csv para tratar os valores.
Colocando isso em código, teremos:
# Recebe o caminho do CSV, que precisa estar no formado:
# Nome, Sobrenome, Email
param (
[parameter(position=0,Mandatory=$True)]
$caminhoListaUsuarios
)
# Configura a ferramenta para uso
$pastaVeracode = "D:\Veracode" # O caminho da pasta onde tem as ferramentas da Veracode
[Environment]::SetEnvironmentVariable("Path", $env:Path + ";$pastaVeracode")
# Configurações
$roles = "Greenlight IDE User,Security Insights,Reviewer,Submitter"
# Faz a configuração do Header
$Header = 'Nome', 'Sobrenome', 'Email'
# Faz a criação dos usuários conforme lista
$listaUsuarios = Import-Csv -Path $caminhoListaUsuarios -Header $Header -Delimiter ","
foreach ($usuario in $listaUsuarios) {
try {
# Faz o tratamento das informações
$nome = $usuario.Nome
$sobrenome = $usuario.Sobrenome
$email = $usuario.Email
# Cria um novo usuário
VeracodeAPI.exe -action createuser -firstname "$nome" -lastname "$sobrenome" -emailaddress "$email" -roles $roles
# Log de retorno e criação dos usuários
Write-Host "Usuário: $nome $sobrenome"
Write-Host "Email: $email"
}
catch {
# Recebendo o erro e exibindo ele, parando a execução
$ErrorMessage = $_.Exception.Message # Recebe o erro
# Mostra uma mensagem personalizada
Write-Host "Erro ao criar o usuário: $nome $sobrenome"
Write-Host "$ErrorMessage"
}
}
Como todos os usuários precisam ter roles, a ideia foi deixar predefinidas algumas que normalmente são utilizadas, nesse caso por usuários com um perfil de acessar a plataforma para fazer análises e pegar resultados, e também que utilize as ferramentas de análise na IDE.
Caso tenha necessidades diferentes, pode alterar essa lista.
E para o caso de times?
Caso a ideia já seja criar esses usuários em um time, nosso script só precisa de duas alterações:
- Adicionar o nome do time como parâmetro
- Passar ele para o Wrapper
Com essas modificações, nosso script vai ficar:
# Recebe o caminho do CSV, que precisa estar no formado:
# Nome, Sobrenome, Email
param (
[parameter(position=0,Mandatory=$True)]
$nomeTime,
[parameter(position=1,Mandatory=$True)]
$caminhoListaUsuarios
)
# Configura a ferramenta para uso
$pastaVeracode = "D:\Veracode" # O caminho da pasta onde tem as ferramentas da Veracode
[Environment]::SetEnvironmentVariable("Path", $env:Path + ";$pastaVeracode")
# Configurações
$roles = "Greenlight IDE User,Security Insights,Reviewer,Submitter"
# Faz a configuração do Header
$Header = 'Nome', 'Sobrenome', 'Email'
# Faz a criação dos usuários conforme lista
$listaUsuarios = Import-Csv -Path $caminhoListaUsuarios -Header $Header -Delimiter ","
foreach ($usuario in $listaUsuarios) {
try {
# Faz o tratamento das informações
$nome = $usuario.Nome
$sobrenome = $usuario.Sobrenome
$email = $usuario.Email
# Cria um novo usuario
VeracodeAPI.exe -action createuser -firstname "$nome" -lastname "$sobrenome" -emailaddress "$email" -roles $roles -teams $nomeTime
# Log de retorno e criação dos usuários
Write-Host "Usuário: $nome $sobrenome"
Write-Host "Email: $email - Time: $nomeTime"
}
catch {
# Recebendo o erro e exibindo ele, parando a execução
$ErrorMessage = $_.Exception.Message # Recebe o erro
# Mostra uma mensagem personalizada
Write-Host "Erro ao criar o usuário: $nome $sobrenome"
Write-Host "$ErrorMessage"
}
}
Top comments (0)