

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Exemple 5 : filtrage de l'interface utilisateur avec des autorisations vérifiées et Cedar
<a name="avp-ui-filtering-examples"></a>

Vous pouvez également utiliser les autorisations vérifiées pour implémenter le filtrage RBAC des éléments de l'interface utilisateur en fonction des actions autorisées. Cela est extrêmement utile pour les applications qui comportent des éléments d'interface utilisateur contextuels susceptibles d'être associés à des utilisateurs ou à des locataires spécifiques dans le cas d'une application SaaS à locataires multiples.

Dans l'exemple suivant, `Users` des ne `Role` `viewer` sont pas autorisés à effectuer des mises à jour. Pour ces utilisateurs, l'interface utilisateur ne doit afficher aucun bouton de mise à jour.

![Exemple de filtrage de l'interface utilisateur avec Amazon Verified Permissions et Cedar](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/saas-multitenant-api-access-authorization/images/avp-example-5.png)


Dans cet exemple, une application Web d'une seule page comporte quatre boutons. Les boutons visibles dépendent `Role` de l'utilisateur actuellement connecté à l'application. Lorsque l'application Web d'une seule page affiche l'interface utilisateur, elle interroge les autorisations vérifiées pour déterminer les actions que l'utilisateur est autorisé à effectuer, puis génère les boutons en fonction de la décision d'autorisation.

La politique suivante indique que le type dont la valeur est égale `Role` à `viewer` peut afficher à la fois les utilisateurs et les données. Une décision `ALLOW` d'autorisation pour cette politique nécessite une `viewUsers` action `viewData` ou, et nécessite également qu'une ressource soit associée au type `Data` ou`Users`. Une `ALLOW` décision autorise l'interface utilisateur à afficher deux boutons : `viewDataButton` et`viewUsersButton`.

```
permit (
    principal in GuiAPP::Role::"viewer",
    action in [GuiAPP::Action::"viewData", GuiAPP::Action::"viewUsers"],
    resource 
)
when {
   resource in [GuiAPP::Type::"Data", GuiAPP::Type::"Users"]
};
```

La politique suivante indique que le type `Role` dont la valeur est égale à ne `viewerDataOnly` peut afficher que les données. Une décision `ALLOW` d'autorisation pour cette politique nécessite une `viewData` action et nécessite également qu'une ressource soit associée au type`Data`. Une `ALLOW` décision autorise l'interface utilisateur à afficher le bouton`viewDataButton`.

```
permit (
    principal in GuiApp::Role::"viewerDataOnly",
    action in [GuiApp::Action::"viewData"],
    resource in [GuiApp::Type::"Data"] 
);
```

La politique suivante indique que le type `Role` dont la valeur est égale à `admin` peut modifier et afficher les données et les utilisateurs. Une décision `ALLOW` d'autorisation pour cette politique nécessite une action de `updateData``updateUsers`, `viewData,` ou`viewUsers`, et nécessite également qu'une ressource soit associée au type `Data` ou`Users`. Une `ALLOW` décision autorise l'interface utilisateur à afficher les quatre boutons : `updateDataButton``updateUsersButton`,`viewDataButton`, et`viewUsersButton`.

```
permit (
    principal in GuiApp::Role::"admin",
    action in [
        GuiApp::Action::"updateData",
        GuiApp::Action::"updateUsers",
        GuiApp::Action::"viewData", 
        GuiApp::Action::"viewUsers"
       ],
    resource 
)
when {
   resource in [GuiApp::Type::"Data", GuiApp::Type::"Users"]
};
```