# Conta

> A linha Conta da página Conta, conectar a estação à conta Ganter dela pelo navegador do sistema, os estados conectado e offline, o Sair, e a que pertence a entrada.

A linha **Conta** é o primeiro cartão da página Conta: a entrada da estação na conta Ganter
dela. A entrada pertence à estação, não a uma pessoa: um humano entra uma vez, no navegador do
sistema, e todo usuário Windows do computador compartilha a sessão até alguém desconectar a
estação. Ela licencia o runtime (veja [Assinatura](account-subscription)) e deixa o formulário
de opinião enviar; ela não faz nada com as telas, que os usuários locais governam.

O cartão é lido por toda identidade, e os dois verbos dele são decididos à parte. Conectar é
livre na tela da própria estação: não tira nada de ninguém, e uma estação no primeiro dia não tem
usuário local nenhum que pudesse ser administrador. Desconectar solta o assento que licencia o
runtime para todo mundo na bancada, então, a partir do momento em que a estação tem algum usuário
local, exige a permissão **Gerenciar usuários locais** nesta conexão (o papel Admin). Um navegador não conecta nada, no próprio computador da estação ou pela rede, porque a entrada abre um navegador no computador
da estação. De um jeito ou de outro o verbo segue desenhado, mas esmaecido, e o motivo viaja no
botão.

## Sem estar autenticada {#signed-out}

| Elemento | O que ele mostra ou faz |
| --- | --- |
| Título | Entrar no Ganter Lab |
| Texto | "Ligue esta estação à sua conta Ganter. O seu navegador abre para você entrar com segurança. O aplicativo nunca vê a sua senha. A entrada pertence à estação e é compartilhada por todo usuário do Windows deste computador." |

| Comando | O que ele faz | Esmaecido quando (situação) | Não aparece quando (papel) |
| --- | --- | --- | --- |
| Entrar | Inicia a entrada pelo navegador. | A página está aberta num navegador e não na janela da estação, navegador no mesmo computador incluído; a dica diz "A conta é ligada na tela da própria estação, porque a entrada abre um navegador no computador da estação." | Nunca. |
| Criar uma conta | Abre a página de cadastro do site do Ganter Lab. Na janela da estação ela abre no navegador padrão; num navegador comum ela abre numa aba nova. Quem entrega o endereço ao Windows é a própria janela da estação, e ela abre um endereço da web e nada mais, aqui e em qualquer outro lugar em que o aplicativo mande você para fora dele: o que não for um relata "Esse não é um endereço da web que esta estação abre. Nada foi aberto." | Nunca. | Nunca. |

## Esperando o navegador {#waiting-for-the-browser}

Pressionar o Entrar transforma o cartão em **Esperando o navegador…**, com o texto "Conclua
a entrada na janela do navegador que acabou de abrir. O controle volta para cá
automaticamente.", uma barra de progresso e um botão **Cancelar**. O aplicativo escuta numa
porta de loopback pela volta do navegador; a senha é digitada no site, nunca no aplicativo. O
Cancelar, fechar o navegador sem concluir, ou um erro devolvem o cartão ao estado sem
autenticação, e o texto do erro aparece em **Detalhes da conexão**, abaixo do cartão.

## Autenticada {#signed-in}

| Elemento | O que ele mostra |
| --- | --- |
| Nome | O nome de exibição da conta, ou **Conta Ganter** quando o perfil não carrega nenhum. |
| E-mail | O endereço de e-mail da conta. |
| Ponto e texto de estado | Verde com "Conectada ao servidor Ganter." enquanto o servidor responde; âmbar com "Sem conexão, usando a entrada salva; reconecta automaticamente." enquanto ele não responde. |

| Comando | O que ele faz | Esmaecido quando (situação) | Não aparece quando (papel) |
| --- | --- | --- | --- |
| Sair | Pede confirmação num diálogo com o título **Sair** que diz "Sair desliga a conta Ganter desta estação para todo usuário do Windows deste computador. Quer sair?", e então libera o posto da estação, pede ao servidor que revogue a sessão, e limpa a entrada guardada. Numa estação que roda com licença perpétua, o diálogo acrescenta "Esta estação roda com uma licença perpétua: ao sair, a licença volta para a conta, e a estação roda em modo gratuito até entrar de novo." Enquanto a estação avisa o site, o botão diz "Saindo…" e ao lado aparece **Parar de esperar**; pressioná-lo encerra a espera, e a saída se completa na estação de qualquer jeito. | A estação tem usuários locais e a identidade não tem Gerenciar usuários locais; a dica diz "Só um administrador pode desligar a conta desta estação." | Nunca. |

A borda inicial do cartão é tingida com o mesmo estado do ponto, então a saúde da conexão se lê
antes de qualquer outra coisa.

### Online e offline {#online-and-offline}

A estação guarda um token de renovação, cifrado para esta máquina (sob `%ProgramData%\GanterLab`,
gravável por toda conta local do Windows para que qualquer uma delas possa renová-lo), junto com
o último perfil, a última fotografia da assinatura e a última licença que o servidor emitiu para
esta estação. A cada partida a identidade em cache
aparece na hora e uma renovação silenciosa roda em segundo plano: uma falha de rede deixa a
estação no estado offline com a identidade em cache, e só uma rejeição categórica do servidor
(a sessão foi revogada, expirou, ou a conta não pode mais entrar) limpa a entrada. Uma sessão
usada ao menos uma vez a cada 90 dias nunca pede o navegador de novo; uma estação totalmente
offline por 90 dias entra de novo pelo navegador. A licença segue o mesmo prazo: offline, a
estação continua licenciada até 90 dias depois do último contato com o servidor (veja
[O modo gratuito e a contagem do runtime](account-subscription#free-mode-and-the-runtime-countdown)).
A licença perpétua não tem esse prazo: ela fica com a estação offline para sempre, mesmo quando a sessão é apagada desse jeito (veja [Licença perpétua](account-subscription#perpetual-license)).

Sair na estação não desconecta o navegador do site; a sessão do site é do navegador.

## Detalhes da conexão {#connection-details}

Quando a última entrada, renovação ou atualização falhou, um detalhamento **Detalhes da
conexão** aparece sob o cartão com o texto do erro. Ele fica visível enquanto a estação está de
resto online, para que uma atualização que falhou e manteve o estado em cache não fique
escondida. Uma mensagem merece atenção: "O servidor não emitiu um token de renovação; a entrada
não vai sobreviver a um reinício." significa que a sessão vive só em memória.

## O aviso de identidade temporária {#the-temporary-identity-notice}

A estação se identifica ao servidor por um id aleatório criado no primeiro uso e guardado para
a máquina inteira; o posto é concedido àquele id. Quando o arquivo que o guarda não pode ser
lido nem escrito, a estação roda sobre uma **identidade temporária**, e a linha Assinatura é
encabeçada por um aviso crítico e forte, **Esta estação está usando uma identidade
temporária**:

> Este computador não conseguiu ler nem gravar o arquivo que guarda a identidade da estação,
> então ela não é reconhecida como a estação a que o seu posto de licença pertence. Uma
> identidade nova é criada toda vez que o aplicativo inicia, o runtime fica parando pelo tempo
> do modo gratuito, e a conta enche de estações que nunca existiram de verdade. Confira se a
> conta do Windows que roda o Ganter Lab consegue ler e gravar na pasta %ProgramData%\GanterLab
> e depois reinicie o aplicativo. O console de Eventos traz o motivo exato sob a origem
> Licensing.

O aviso aparece esteja a estação autenticada ou não, porque uma estação nessa condição se lê
como não licenciada, diga a conta o que disser.

## O que é enviado {#what-is-sent}

| Passo | O que sai da estação |
| --- | --- |
| Entrada pelo navegador | O fluxo padrão de código de autorização com o servidor da Ganter, pedindo identidade, e-mail, acesso offline e leitura da assinatura. |
| Depois da entrada, na partida, a cada 24 horas e a cada abertura da página Conta | O registro da estação: o id aleatório dela, o nome de máquina do Windows, a versão do aplicativo e, quando definido, o ID do integrador; e depois um pedido do documento da assinatura. |
| Sair | A liberação do posto e a revogação do token, as duas de melhor esforço. |

Nenhuma impressão digital de hardware, nenhum número de série e nenhum nome de usuário local é
enviado. Um disco reformatado vira uma estação nova; o registro antigo envelhece e sai da conta
depois de 90 dias sem uma entrada.

## O perfil de demonstração {#the-demo-profile}

No perfil de demonstração isolado o cartão mostra um substituto local: **Perfil de
demonstração**, `demo@ganterlab.invalid`, "Conectada ao servidor Ganter." sem nada por trás.
O Sair e o Entrar funcionam sem navegador e alternam o perfil entre um posto licenciado e o
modo gratuito; nada chega ao servidor.

## O que a linha não faz {#what-the-row-does-not-do}

- Ela não autentica uma pessoa. Quem está autenticado numa tela é o chip de usuário e a página
  [Usuários](users); esta entrada é da estação.
- Ela não muda o que qualquer tela mostra ou permite. As permissões vêm dos papéis locais.
- Ela não bloqueia nada quando falha. Uma estação que não consegue alcançar o servidor mantém o
  estado em cache dela e continua funcionando; a única consequência de não estar autenticada é
  a janela do modo gratuito.
- Ela não pede um administrador para conectar uma estação que não tem nenhum. Conectar é livre;
  quem exige Gerenciar usuários locais, assim que a estação tem usuários locais, é o desconectar,
  que solta o assento.
- Ela não esconde o Entrar nem o Sair de uma identidade que não pode pressioná-los: os dois
  seguem desenhados, esmaecidos, com o motivo no botão. E ela continua a não deixar um navegador
  remoto tomar emprestado o administrador da bancada, já que a permissão é lida na conexão que
  pressiona o botão.
