# Rôles

> La racine Rôles de la page Utilisateurs, la liste des rôles avec leurs bandes de portée, et le volet où se règlent le nom, la description et les interrupteurs de permission d'un rôle, y compris les deux rôles fixes.

La racine **Rôles** porte un nœud par rôle. Un rôle est un ensemble nommé d'interrupteurs de
permission ; les utilisateurs s'y lient, et le modifier change d'un coup chaque utilisateur qui le
porte. La station est livrée avec six rôles. Deux sont fixes : **Non connecté** (le rôle en vigueur
avant qu'on se connecte) et **Admin** (accès complet). Quatre sont des propositions ordinaires,
modifiables et supprimables : **Viewer**, **Operator**, **Maintainer** et **Developer**.

Comme la racine Utilisateurs, cette racine et ses enfants appartiennent à un administrateur connecté
sur ce circuit (Gérer les utilisateurs locaux). N'importe qui d'autre voit la racine sans enfants
et, derrière elle, l'avis qui dit de se connecter en tant qu'administrateur. Sur une station sans
utilisateur, l'avis affiche plutôt : « Les rôles sont déjà en place, mais en modifier un demande un
administrateur, et cette station n'en a pas encore. Mettez d'abord en place les utilisateurs
locaux : l'administrateur principal est le premier. »

## La liste des rôles {#the-role-list}

Ouvrir la racine montre la carte **RÔLES**, avec la ligne « Chaque rôle atteint ces domaines, à la
profondeur que montre sa bande. Modifier un rôle change chaque utilisateur qui le porte, et modifier
le premier change ce que tout écran peut faire avant qu'on s'y connecte. » et une ligne par rôle,
dans un ordre fixe :

| Ligne | Marques | Sous-ligne |
| --- | --- | --- |
| Non connecté | Un glyphe de personne qui marche et la pastille **En vigueur avant toute connexion**. | Sa description, « Ce que n'importe qui peut faire sur cette station sans se connecter. » |
| Admin | Un glyphe de cadenas et la pastille **Accès complet · verrouillé**. | Sa description, « Accès complet à tous les domaines, plus la gestion des utilisateurs. » |
| Tout autre rôle | | Sa description quand il en a une ; sinon une synthèse en direct de sa portée (« Peut changer {n} domaines sur 6 », « Lecture seule » ou « Aucun accès »), si bien qu'une description vide ne laisse jamais la ligne blanche et qu'une description périmée ne s'attarde jamais. |

Les rôles modifiables suivent dans l'ordre alphabétique du nom que la ligne affiche, sans tenir compte des majuscules, si bien qu'un rôle créé ou renommé prend sa place parmi eux. La colonne et la liste déroulante des rôles du volet d'un utilisateur présentent les rôles dans le même ordre.

Chaque ligne est suivie de sa bande de portée compacte, six repères dans le même ordre partout, si
bien que les rôles se lisent comme une échelle plutôt que comme une liste de noms. Sans rôle
modifiable, la carte dit « « Non connecté » et « Admin » sont les seuls rôles de cette station.
Nouveau rôle en construit un pour le travail que le banc fait vraiment. »

Cliquer une ligne ouvre le nœud de ce rôle. Dans la colonne, chaque nœud de rôle est suivi de la
même bande compacte ; le nœud Non connecté porte le glyphe de personne qui marche parmi les clés.

## Les rôles d'usine {#the-factory-roles}

| Rôle | Description telle qu'elle est livrée | Ce qu'il détient |
| --- | --- | --- |
| Non connecté | Ce que n'importe qui peut faire sur cette station sans se connecter. | Tout sauf Gérer les utilisateurs locaux et Accès à distance (LAN). |
| Admin | Accès complet à tous les domaines, plus la gestion des utilisateurs. | Toutes les permissions ; fixe. |
| Viewer | Lecture seule sur toute la station. | Voir les tableaux de bord, Voir Connector, Consulter les modèles, Voir les historiques, Voir Logic, Voir la vérification, Voir les événements, Accès à distance (LAN). |
| Operator | Conduit la ligne au quotidien. Pilote les tableaux de bord et Logic, exécute les procédures. | Viewer plus Piloter les tableaux de bord, Piloter Logic, Exécuter les procédures. |
| Maintainer | Operator, plus l'étalonnage et la configuration du Connector, l'export des données et la gestion des essais enregistrés. | Operator plus Étalonner les tags, Configurer Connector, Exporter/importer les historiques, Gérer les historiques. |
| Developer | Construit les vues, la logique et les procédures : tout sauf l'administration de la station. | Maintainer plus Modifier les tableaux de bord, Configurer Logic, Gérer Process (qui amène Modifier recettes et évaluations avec elle). |

L'échelle est une proposition, pas un contrat : Viewer, Operator, Maintainer et Developer peuvent
être renommés, modifiés et supprimés. La mise en place ne s'exécute qu'une fois, sur une station
dont la table des rôles est vide ; une souche supprimée ne revient pas. Non connecté est permissif
par conception, si bien qu'une station neuve fonctionne pleinement sans que personne ne soit
connecté, et le resserrer est un acte délibéré.

Aucun des six noms ni aucune des six descriptions ci-dessus n'est un mot enregistré : la station
garde une clé pour chacun et la lit dans la langue de l'interface, si bien que la liste se lit comme
le reste de l'écran. Renommez-en un, ou écrivez votre propre description, et la station enregistre
ce que vous avez tapé : à partir de là, ce rôle se lit pareil quelle que soit la langue de
l'interface.

## Le volet d'un rôle {#the-role-panel}

Le volet d'un rôle enregistre à mesure que vous travaillez : le nom et la description quand le champ
est quitté, un interrupteur dès qu'il bascule. Quand le rôle sélectionné vient d'être supprimé
depuis un autre écran, le volet dit « Ce rôle n'est plus sur cette station. Choisissez-en un autre
dans la colonne. » Tant que le runtime est arrêté, le volet n'est pas là du tout : la page cède la
place à l'avis de pause, comme chaque écran sauf [Compte](account) (voir
[Utilisateurs](users#what-the-page-does-not-do)).

### En-tête, nom et description {#head-name-and-description}

L'en-tête porte le glyphe que la ligne du rôle porte dans la colonne (une clé, ou la personne qui
marche sur Non connecté), le nom du rôle et, sous le nom, une ligne qui dit ce qu'est le rôle.
Admin porte la pastille **Accès complet · verrouillé**. Non connecté porte une pastille qui dit à
quel point la station est ouverte à qui ne s'est pas connecté, et sa ligne est la phrase qui va
avec cette pastille :

| Pastille | Quand | Phrase |
| --- | --- | --- |
| Ouverte | Trois domaines ou plus à Piloter ou Gérer. | « Sans se connecter, n'importe qui sur cette station peut exploiter ou configurer {n} domaines sur 6. Désactivez des interrupteurs ci-dessous pour resserrer cela. » |
| Restreinte | Un ou deux domaines à Piloter ou Gérer. | « Sans se connecter, n'importe qui sur cette station peut changer {n} domaines sur 6 ; le reste est en lecture seule ou fermé. » |
| Lecture seule | Aucun domaine au-dessus de Voir. | « Sans se connecter, n'importe qui sur cette station peut consulter ce que montre la bande ci-dessous, et ne rien changer. » |

Sur tout autre rôle, Admin compris, la ligne est la description du rôle, lue comme la liste la lit :
celle d'un rôle d'usine dans la langue de l'interface, celle qu'un administrateur a tapée
exactement telle qu'il l'a tapée. Un rôle sans description y lit « Un ensemble de permissions,
porté par chaque utilisateur qui a ce rôle. », là où sa ligne dans la liste montre la synthèse de
sa portée.

| Champ | Ce que c'est | Valeurs / défaut | Effet |
| --- | --- | --- | --- |
| Nom du rôle | Le nom qu'emploient la colonne, la liste et le sélecteur d'un utilisateur. | Jusqu'à 60 caractères ; un nouveau rôle commence sous le nom **Nouveau rôle** ; un nom vide conserve le précédent. Verrouillé sur Non connecté et sur Admin. | Valide quand le champ est quitté ; le journal rapporte « Le rôle a été renommé en « {name} ». » |
| Description | La sous-ligne du rôle dans la liste et la ligne sous son nom dans l'en-tête. | Jusqu'à 200 caractères, texte d'exemple « À quoi sert ce rôle ». Masquée sur Non connecté ; en lecture seule sur Admin. | Valide quand le champ est quitté ; le journal rapporte « Description de « {name} » enregistrée. » |

Sous le champ du nom, les rôles fixes portent une note : « Le rôle Admin est fixe. Il a toujours un
accès complet et peut gérer les utilisateurs locaux. » et « « Non connecté » est le rôle en vigueur
quand personne n'est connecté. Ses permissions sont modifiables ; le rôle lui-même ne peut être ni
renommé, ni supprimé, ni attribué à un utilisateur. » L'indication de la description affiche
« Affichée sous le nom du rôle. Mettez-la à jour quand vous changez ce que le rôle peut faire. »

Sous les champs, la carte lit la portée du rôle en direct : la synthèse, les mots **suit les
interrupteurs ci-dessous**, et la bande libellée. Elle se reforme à chaque bascule, avant même que
l'écriture ne revienne. Elle ne modifie jamais : le domaine Système mélange des interrupteurs
indépendants, donc un repère ne peut pas se rapporter à l'un d'eux.

### Permissions {#permissions}

La carte **PERMISSIONS DU RÔLE** s'ouvre sur l'une de trois amorces :

- Admin : « Le rôle Admin a toujours un accès complet, donc ses interrupteurs sont fixes. C'est le
  rôle qui peut gérer les utilisateurs, et la station en garde un. »
- Non connecté : « Chaque interrupteur s'applique dès que vous le changez, à tout écran où personne
  ne s'est connecté. »
- Tout autre rôle : « Chaque interrupteur s'applique dès que vous le changez, à ce rôle et à chaque
  utilisateur qui le porte. »

Puis un groupe par domaine, précédé du glyphe du domaine, de son nom et d'un compteur, « {on} sur
{total} » : Tableaux de bord (3), Connector (3), Process (4), Historiques (3), Logic (3),
Vérification (1) et Système (5). Chaque ligne est un libellé, une description et un interrupteur. Le
catalogue complet, avec chaque libellé et chaque description tels qu'ils se lisent, est sur la page
[Permissions](users-permissions).

Un interrupteur est verrouillé, et ne peut pas basculer, dans quatre cas :

| Interrupteur verrouillé | Pourquoi | Comment il se lit |
| --- | --- | --- |
| Chaque interrupteur sur Admin | Le masque Admin est fixe. | Activé, grisé, sans étiquette. |
| Gérer les utilisateurs locaux sur tout autre rôle | Exclusif à Admin. | Désactivé, grisé. |
| Voir les tableaux de bord | Le plancher ; il ne peut jamais être retiré. | Activé, grisé, étiqueté **Obligatoire**. |
| Un prérequis dont le dépendant est activé | Activer le dépendant l'a activé et l'y tient. | Activé, grisé, étiqueté **Obligatoire**. |

Activer un interrupteur active aussi ce qu'il exige (Piloter les tableaux de bord active Voir les
tableaux de bord ; Gérer Process active Modifier recettes et évaluations, Exécuter les procédures et
Consulter les modèles). Désactiver un interrupteur désactive aussi tout ce qui l'exigeait (Voir
Connector désactivé emmène Étalonner les tags et Configurer Connector avec lui). Les règles sont
listées sur la page [Permissions](users-permissions#implication-rules). Chaque bascule écrit le rôle
entier d'un coup et le journal rapporte « {Libellé} : activée pour « {role} ». » ou « {Libellé} :
désactivée pour « {role} ». » ; une écriture que la station refuse remet les interrupteurs à ce
qu'elle détient réellement et rapporte « Le rôle n'a pas pu être enregistré : {raison} ».

La station normalise aussi ce qu'elle conserve : un rôle qui n'est pas Admin ne garde jamais Gérer
les utilisateurs locaux, et chaque masque conservé porte ses prérequis, si bien qu'un rôle est
toujours cohérent avec lui-même.

### En vigueur pour, ou Porté par {#in-force-for-or-held-by}

La dernière carte diffère entre le rôle de passage et tous les autres :

- Sur Non connecté, **EN VIGUEUR POUR** affiche « Tout écran où personne ne s'est connecté, celui de
  cette station comme tout appareil qui la consulte. Ce rôle n'est donné à personne ; c'est ce qui
  s'applique tant que personne ne s'est connecté, et se connecter le remplace par le rôle propre à
  l'utilisateur. » et « Parce que la station a besoin de sa présence, ce rôle reste : ses permissions
  sont à vous de fixer, son nom et son existence non. »
- Sur tout autre rôle, **PORTÉ PAR** liste les noms affichés des utilisateurs qui le portent, avec
  « Chaque interrupteur que vous changez ici change ce qu'ils peuvent tous faire. » Sans personne
  dessus, il affiche « Aucun utilisateur ne porte encore ce rôle. Attribuez-le depuis la page d'un
  utilisateur, sous Utilisateurs. »

## Créer et supprimer un rôle {#creating-and-deleting-a-role}

**Nouveau rôle** dans le pied de la colonne crée un rôle qui part du plancher : Voir les tableaux de bord et Envoyer des signalements à Ganter activés, tout le reste désactivé, description vide. Le rôle nouveau n'est pas ouvert : sa ligne est mise en évidence et amenée dans la zone visible dans la liste des rôles, et appuyer sur la ligne l'ouvre. Ajoutez de la portée délibérément ; notez
qu'un rôle vierge ne détient pas Voir les événements, que chaque rôle d'usine possède. **Supprimer
le rôle** sur la barre de détail demande « Supprimer le rôle « {name} » ? Cette action est
irréversible. » et est refusé, grisé avec la raison, sur l'un ou l'autre rôle fixe (« {Name} est
un rôle fixe : la station a besoin de sa présence. »), et tant qu'un
utilisateur le porte encore (« Ce rôle est porté par des utilisateurs. Déplacez-les d'abord vers un
autre rôle. »).

## Comment un changement atteint tout le monde {#how-a-change-reaches-everyone}

Les rôles vivent dans un seul service que toute la station lit. Un interrupteur basculé atteint
d'un coup chaque utilisateur qui porte le rôle sur chaque connexion : la fenêtre de la station,
chaque navigateur, chaque opérateur connecté. Un écran revérifie le rôle à chaque pression, si bien
qu'un opérateur dont le rôle vient de perdre une permission voit la commande refusée à la pression
suivante même si l'écran était déjà dessiné. Un utilisateur dont le rôle est supprimé sous lui
retombe au plancher. Un tableau de bord dont la liste **Visible par** nommait le rôle supprimé
traite cette entrée comme inerte, si bien que le tableau de bord ne devient jamais inatteignable.

## Ce que le volet ne fait pas {#what-the-panel-does-not-do}

- Il n'attribue pas les utilisateurs. C'est le sélecteur Rôle sur la page de chaque utilisateur, sous
  [Utilisateurs locaux](users-local-users#role).
- Il ne change pas Admin : ni ses interrupteurs, ni son nom, ni son existence.
- Il ne renomme ni ne supprime Non connecté, et il ne le propose dans le sélecteur Rôle d'aucun
  utilisateur.
- Il n'est pas dessiné tant que le runtime est arrêté, ni dans la fenêtre de la station ni dans
  aucun navigateur : la page cède la place à l'avis de pause, si bien qu'aucun rôle ne peut être
  créé, renommé, décrit ni supprimé, et qu'aucun de ses interrupteurs ne bascule, tant que le
  runtime n'a pas redémarré.
- Il ne peut accorder Gérer les utilisateurs locaux à aucun rôle sauf Admin, et il ne peut retirer
  Voir les tableaux de bord à aucun rôle.
