# Administração

Esta página é para quem tem o papel **owner**. Os comandos abaixo só
funcionam com um token de owner; para todo mundo respondem `forbidden`.

## Convidar alguém

O acesso é por convite, pelo usuário do GitHub:

```sh
rapadura admin invite panthedog            # vira staff
rapadura admin invite outra-pessoa --role owner
rapadura admin invites                     # convites pendentes
rapadura admin revoke-invite panthedog     # desfaz um convite não usado
```

Depois do convite a pessoa roda `rapadura login`, autoriza no GitHub e
está dentro. O convite some quando é usado; a partir daí a pessoa aparece em
`rapadura admin users`.

## Conta no WordPress

A conta no WordPress nasce na primeira vez que a pessoa cria um site, com o
e-mail que ela passar em `--email`. Para preparar antes, e dispensar o
`--email`:

```sh
rapadura admin wp-account panthedog --email panthedog@exemplo.com
```

A pessoa precisa ter feito `rapadura login` ao menos uma vez.

## Papéis

- **staff**: cria e gerencia os próprios hotsites e sites WordPress; não
  enxerga os dos outros; não usa `rapadura admin`.
- **owner**: enxerga e altera todos os sites, convida, revoga tokens, lê o
  registro de auditoria. A política do `wp-cli` vale para o owner também: o
  que passa do limite se faz no servidor, não pelo gateway.

## Tokens

Cada máquina que fez `rapadura login` tem um token próprio, com validade de
90 dias.

```sh
rapadura admin tokens                      # todos os tokens, com último uso
rapadura admin revoke-token 7              # revoga na hora
```

Para desligar alguém de vez: revogue todos os tokens dessa pessoa. Um token
sem GitHub, para automação ou testes, é cunhado **no servidor**:

```sh
sudo -u rapadura-gw rapadura admin bootstrap-token --data-dir /srv/rapadura \
  --login nome-da-conta --role staff --name "para que serve" --ttl 72h
```

O token aparece uma única vez. Trate como senha.

## Auditoria

```sh
rapadura admin audit -n 50
```

Quem fez o quê, em qual site, quando, com resultado. Os comandos do
`wp-cli` entram completos, inclusive os recusados.

## Sites de outras pessoas

O owner vê tudo em `rapadura sites list` e pode publicar, voltar versão ou
apagar qualquer site com os mesmos comandos. Um site apagado responde 410 e
fica guardado; restaurar ainda é manual no servidor. Para remover de vez e
liberar o nome:

```sh
rapadura admin purge-site qa-teste.rapadura.net --yes
```
