# Papéis

> A raiz Papéis da página Usuários, a lista de papéis com as faixas de alcance deles, e o painel do papel onde o nome, a descrição e as chaves de permissão de um papel são definidos, incluindo os dois papéis fixos.

A raiz **Papéis** guarda um nó por papel. Um papel é um conjunto nomeado de chaves de
permissão; os usuários se vinculam a ele, e editá-lo muda de uma vez todo usuário que o
carrega. A estação vem com seis papéis. Dois são fixos: **Não conectado** (o papel em vigor
antes de alguém entrar) e **Admin** (acesso total). Quatro são sugestões comuns, editáveis e
excluíveis: **Viewer**, **Operator**, **Maintainer** e **Developer**.

Como a raiz Usuários, esta raiz e os filhos dela pertencem a um administrador neste circuito
(Gerenciar usuários locais). Qualquer outra pessoa vê a raiz sem filhos e, atrás dela, o aviso
que manda entrar como administrador. Numa estação ainda sem usuários o aviso diz outra coisa:
"Os papéis já vêm semeados, mas mudar um exige um administrador, e esta estação ainda não tem
nenhum. Configure antes os usuários locais: o administrador principal é o primeiro deles."

## A lista de papéis {#the-role-list}

Abrir a raiz mostra o cartão **PAPÉIS**, com a linha "Cada papel alcança estas áreas, na
profundidade que a faixa dele mostra. Editar um papel muda todo usuário que o tem, e editar
o primeiro muda o que qualquer tela pode fazer antes de alguém entrar." e uma linha por papel,
numa ordem fixa:

| Linha | Marcas | Sublinha |
| --- | --- | --- |
| Não conectado | Um glifo de pessoa caminhando e o chip **Em vigor antes de alguém entrar**. | A descrição dele, "O que qualquer um pode fazer nesta estação sem entrar." |
| Admin | Um glifo de cadeado e o chip **Acesso total · fixo**. | A descrição dele, "Acesso total a toda área, mais gerenciar usuários." |
| Todo outro papel | | A descrição dele quando há uma; caso contrário um resumo ao vivo do alcance dele ("Pode mudar {n} de 6 áreas", "Somente visualização" ou "Sem acesso"), para que uma descrição vazia nunca deixe a linha em branco e uma descrição velha nunca fique parada ali. |

Os papéis editáveis vêm em ordem alfabética do nome que a linha mostra, sem distinguir maiúsculas de minúsculas, então um papel criado ou renomeado toma o seu lugar entre eles. A coluna e a lista suspensa de papéis do painel de um usuário listam os papéis na mesma ordem.

Toda linha traz a faixa de alcance compacta dela, seis pontos na mesma ordem em todo lugar,
para que os papéis se leiam como uma escada e não como uma lista de nomes. Sem nenhum papel
editável restante, o cartão diz "Não conectado e Admin são os únicos papéis desta estação.
Novo papel cria um para o trabalho que a bancada realmente faz."

Clicar numa linha abre o nó daquele papel. Na coluna, cada nó de papel traz a mesma faixa
compacta; o nó Não conectado exibe o glifo de pessoa caminhando entre as chaves.

## Os papéis de fábrica {#the-factory-roles}

| Papel | Descrição de fábrica | O que ele carrega |
| --- | --- | --- |
| Não conectado | O que qualquer um pode fazer nesta estação sem entrar. | Tudo menos Gerenciar usuários locais e Acesso remoto (LAN). |
| Admin | Acesso total a toda área, mais gerenciar usuários. | Toda permissão; fixo. |
| Viewer | Somente leitura pela estação inteira. | Ver dashboards, Ver Connector, Ver modelos, Ver históricos, Ver a lógica, Ver validação, Ver eventos, Acesso remoto (LAN). |
| Operator | Toca a linha no dia a dia. Opera dashboards e a lógica, executa procedimentos. | Viewer mais Operar dashboards, Operar a lógica, Executar procedimentos. |
| Maintainer | Operator, mais calibrar e configurar o Connector, exportar dados e gerenciar as execuções gravadas. | Operator mais Calibrar tags, Configurar Connector, Exportar/importar históricos, Gerenciar os históricos. |
| Developer | Constrói telas, lógica e procedimentos: tudo menos a administração da estação. | Maintainer mais Editar dashboards, Configurar a lógica, Gerenciar o Process (que traz junto Editar receitas e avaliações). |

A escada é uma sugestão, não um contrato: Viewer, Operator, Maintainer e Developer
podem ser renomeados, editados e excluídos. A semeadura roda uma vez, numa estação cuja tabela
de papéis está vazia; uma semente excluída não volta. O Não conectado é permissivo por
desenho, para que uma estação nova funcione por inteiro sem ninguém autenticado e apertá-lo seja
um ato deliberado.

Nenhum dos seis nomes e descrições acima é uma palavra gravada: a estação guarda uma chave para
cada um e a lê no idioma da interface, para que a lista se leia como o resto da tela. Renomeie um
deles, ou escreva uma descrição sua, e a estação grava o que você digitou: dali em diante aquele
papel se lê igual em qualquer idioma da interface.

## O painel do papel {#the-role-panel}

O painel de um papel salva conforme você trabalha: o nome e a descrição quando o campo é
deixado, uma chave no instante em que é virada. Enquanto está selecionado um papel que outra
tela acabou de excluir, o painel diz "Esse papel não está mais nesta estação. Escolha outro na
coluna." Enquanto o runtime está parado o painel nem aparece: a página dá lugar ao aviso de
pausa, como toda tela menos a [Conta](account) (veja [Usuários](users#what-the-page-does-not-do)).

### Topo, nome e descrição {#head-name-and-description}

O topo traz o glifo que a linha do papel usa na coluna (uma chave, ou a pessoa caminhando no
Não conectado), o nome do papel e, sob o nome, uma linha que diz o que o papel é. O Admin
carrega o chip **Acesso total · fixo**. O Não conectado carrega um chip que diz quão aberta a
estação está para quem não entrou, e a linha dele é a frase que acompanha esse chip:

| Chip | Quando | Frase |
| --- | --- | --- |
| Aberta | Três ou mais áreas em Operar ou Administrar. | "Sem entrar, qualquer pessoa nesta estação pode operar ou configurar {n} de 6 áreas. Desligue chaves abaixo para apertar isso." |
| Restrita | Uma ou duas áreas em Operar ou Administrar. | "Sem entrar, qualquer pessoa nesta estação pode mudar {n} de 6 áreas; o resto é somente visualização ou está desligado." |
| Somente visualização | Nenhuma área acima de Ver. | "Sem entrar, qualquer pessoa nesta estação pode ver o que a faixa abaixo mostra, e não muda nada." |

Em todo outro papel, o Admin incluído, a linha é a descrição do papel, lida como a lista a lê:
a de um papel de fábrica no idioma da interface, a que um administrador digitou exatamente como
foi digitada. Um papel sem descrição mostra ali "Um conjunto de permissões, vestido por todo
usuário que o tem.", enquanto a linha dele na lista mostra o resumo do alcance.

| Campo | O que é | Valores / padrão | Efeito |
| --- | --- | --- | --- |
| Nome do papel | O nome que a coluna, a lista e o seletor do usuário usam. | Até 60 caracteres; um papel novo começa como **Novo papel**; um nome em branco mantém o anterior. Travado em Não conectado e em Admin. | Confirma quando o campo é deixado; o feed relata "Papel renomeado para '{nome}'." |
| Descrição | A sublinha do papel na lista e a linha sob o nome dele no topo. | Até 200 caracteres, com o texto de exemplo "Para que serve este papel". Escondida em Não conectado; somente leitura em Admin. | Confirma quando o campo é deixado; o feed relata "Descrição de '{nome}' salva." |

Sob o campo de nome, os papéis fixos carregam uma nota: "O papel Admin é fixo. Ele sempre tem
acesso total e pode administrar os usuários locais." e "Não conectado é o papel em vigor quando
ninguém entrou. As permissões dele são editáveis; o papel em si não pode ser
renomeado, excluído nem atribuído a um usuário." A dica da descrição diz "Mostrada sob o nome do
papel. Atualize quando você mudar o que o papel pode fazer."

Abaixo dos campos, o cartão lê o alcance do papel ao vivo: o resumo, as palavras **segue as
chaves abaixo**, e a faixa rotulada. Ela se refaz a cada virada, antes de a escrita voltar. Ela
nunca edita: a área Sistema mistura chaves independentes, então um ponto não pode ser
mapeada de volta para uma delas.

### Permissões {#permissions}

O cartão **PERMISSÕES** abre com uma de três chamadas:

- Admin: "O papel Admin sempre tem acesso total, então as chaves dele são fixas. É o papel que
  pode administrar usuários, e a estação mantém um."
- Não conectado: "Cada chave passa a valer assim que você a muda, em toda tela onde ninguém
  entrou."
- Todo outro papel: "Cada chave passa a valer assim que você a muda, neste papel e em todo
  usuário que o tem."

Depois vem um grupo por área, encabeçado pelo glifo da área, pelo nome dela e por um contador,
"{ligadas} de {total}": Dashboard (3), Connector (3), Process (4), Históricos (3), Logic (3),
Validação (1) e Sistema (5). Cada linha é um rótulo, uma descrição e uma chave. O catálogo
completo, com todo rótulo e toda descrição exatamente como se leem, está na página
[Permissões](users-permissions).

Uma chave fica travada, e não pode ser virada, em quatro casos:

| Chave travada | Por quê | Como ela se lê |
| --- | --- | --- |
| Toda chave do Admin | A máscara do Admin é fixa. | Ligada, esmaecida, sem etiqueta. |
| Gerenciar usuários locais em todo outro papel | Exclusiva do Admin. | Desligada, esmaecida. |
| Ver dashboards | O piso; ela nunca pode ser revogada. | Ligada, esmaecida, com a etiqueta **Obrigatória**. |
| Um pré-requisito cujo dependente está ligado | Ligar o dependente ligou o pré-requisito e o segura ali. | Ligada, esmaecida, com a etiqueta **Obrigatória**. |

Ligar uma chave também liga o que ela exige (Operar dashboards liga Ver dashboards; Gerenciar o
Process liga Editar receitas e avaliações, Executar procedimentos e Ver modelos). Desligar uma
chave também desliga tudo o que a exigia (Ver Connector desligada leva junto Calibrar tags e
Configurar Connector). As regras estão listadas na página
[Permissões](users-permissions#implication-rules). Toda virada escreve o papel inteiro de uma
vez e o feed relata "{Rótulo}: ligada para '{papel}'." ou "{Rótulo}: desligada para '{papel}'.";
uma escrita que a estação recusa devolve as chaves ao que ela de fato guarda e relata "Não foi
possível salvar o papel: {motivo}".

A estação também normaliza o que guarda: um papel que não é Admin nunca fica com Gerenciar
usuários locais, e toda máscara guardada carrega os pré-requisitos dela, então um papel é sempre
coerente consigo mesmo.

### Em vigor para, ou Usado por {#in-force-for-or-held-by}

O último cartão difere entre o papel de quem chega e todos os outros:

- No Não conectado, **EM VIGOR PARA** diz "Toda tela onde ninguém entrou, a da própria
  estação e a de qualquer dispositivo que a esteja vendo. Ninguém recebe este papel; ele é o que
  vale até alguém entrar, e entrar o troca pelo papel daquele usuário." e "Como a estação
  depende de ele estar aqui, este papel fica: as permissões dele são suas para definir, o nome e
  a existência dele não."
- Em todo outro papel, **USADO POR** lista os nomes de exibição dos usuários que o carregam, com
  "Cada chave que você muda aqui muda o que todos eles podem fazer." Sem ninguém nele, ele diz
  "Nenhum usuário tem este papel ainda. Atribua-o na página do próprio usuário, em
  Usuários."

## Criar e excluir um papel {#creating-and-deleting-a-role}

**Novo papel**, no rodapé da coluna, cria um papel que começa no piso: Ver dashboards e Enviar relatos à Ganter ligadas, todo o resto desligado, descrição vazia. O papel novo não é aberto: a linha dele fica destacada e rolada até ficar à vista na lista de papéis, e pressionar a linha o abre. Acrescente alcance de propósito; note que um papel em
branco não carrega Ver eventos, que todo papel de fábrica tem. **Excluir o papel**, na barra de
detalhe, pergunta "Excluir o papel '{nome}'? Isso não pode ser desfeito." e é recusado,
esmaecido com a razão, em qualquer um dos papéis fixos ("{Nome} é um papel fixo: a estação
depende de ele estar aqui."), e enquanto algum usuário ainda o carrega ("Este papel está com
usuários. Passe esses usuários para outro papel primeiro.").

## Como uma mudança chega a todo mundo {#how-a-change-reaches-everyone}

Os papéis moram num serviço só que a estação inteira lê. Uma chave virada chega a todo usuário
que carrega o papel, em toda conexão, de uma vez: a janela da estação, todo navegador, todo
operador autenticado. Uma tela reconfere o papel a cada toque, então um operador cujo papel
acabou de perder uma permissão tem o comando recusado no toque seguinte, mesmo que a tela já
estivesse desenhada. Um usuário cujo papel é excluído por baixo dele cai para o piso. Um
dashboard cuja lista **Visível para** nomeava o papel excluído trata aquela entrada como inerte,
então o dashboard nunca fica inalcançável.

## O que o painel não faz {#what-the-panel-does-not-do}

- Ele não atribui usuários. Isso é o seletor de Papel na página de cada usuário, em
  [Usuários](users-local-users#role).
- Ele não muda o Admin: nem as chaves dele, nem o nome, nem a existência.
- Ele não renomeia nem exclui o Não conectado, e não o oferece no seletor de Papel de nenhum
  usuário.
- Ele não é desenhado enquanto o runtime está parado, nem na janela da estação nem em nenhum
  navegador: a página dá lugar ao aviso de pausa, então nenhum papel pode ser criado,
  renomeado, descrito, ter uma chave virada nem ser excluído até o runtime ser reiniciado.
- Ele não consegue conceder Gerenciar usuários locais a nenhum papel além do Admin, e não
  consegue revogar Ver dashboards de nenhum papel.
