DEV Community

Cover image for Criando usuários via CLI Windows
Ivo Dias for M3Corp

Posted on

1

Criando usuários via CLI Windows

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
  • Email

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"
    }

}
Enter fullscreen mode Exit fullscreen mode

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"
    }

}
Enter fullscreen mode Exit fullscreen mode

Sentry image

Hands-on debugging session: instrument, monitor, and fix

Join Lazar for a hands-on session where you’ll build it, break it, debug it, and fix it. You’ll set up Sentry, track errors, use Session Replay and Tracing, and leverage some good ol’ AI to find and fix issues fast.

RSVP here →

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay