web-dev-qa-db-fra.com

Interface qui prend en charge "ajouter un nouveau" et "ajouter un existant" pour une relation plusieurs-à-plusieurs

Un rôle peut avoir plusieurs autorisations , et une autorisation peut appartenir à plusieurs Les rôles. Je conçois une interface qui permet à l'utilisateur de gérer un rôle spécifique, et toutes les autorisations associées en même temps:

mockup

télécharger la source bmml - Wireframes créés avec Balsamiq Mockups

L'idée est que l'utilisateur doit pouvoir ajouter une autorisation existante au rôle, mais il doit également pouvoir créer une autorisation entièrement nouvelle et l'associer au rôle.

La situation est compliquée par le fait que lorsque vous créez une nouvelle autorisation, vous devez saisir des informations supplémentaires. Lorsque vous utilisez une autorisation existante, ces informations sont déjà présentes (bien que vous souhaitiez peut-être les modifier).

Je vois ici deux priorités de conception contradictoires:

Clarté

Il y a jusqu'à six actions différentes que je pourrais vouloir représenter avec mon widget "permissions":

  • Créer une nouvelle autorisation et attacher au rôle
  • Attacher l'autorisation existante au rôle
  • Détacher l'autorisation du rôle
  • Supprimer l'autorisation (et également se détacher de tous les rôles)
  • Modifier l'autorisation (les modifications affecteront d'autres rôles)
  • Copier l'autorisation, attacher au rôle, puis modifier

Certaines de ces actions peuvent affecter d'autres rôles, créant ainsi des conséquences inattendues. Cela pourrait être un problème majeur, surtout lorsque nous parlons d'un ensemble d'opérations aussi sensibles que la gestion du contrôle d'accès.

Il est également difficile de les représenter comme des actions distinctes. Une icône de corbeille signifie-t-elle "détacher cette autorisation de ce rôle" ou signifie-t-elle "supprimer complètement cette autorisation?"

Commodité

Dans l'ensemble, la plupart des autorisations seront attribuées à un rôle lors de sa création. Il est beaucoup plus facile pour un administrateur de créer directement les nouvelles autorisations dont il a besoin lors de la création du rôle, plutôt que d'avoir à passer par une interface "autorisations" distincte.

Quelle serait une bonne façon de gérer ce compromis?

3
alexw

Une icône de corbeille signifie-t-elle "détacher cette autorisation de ce rôle" ou signifie-t-elle "supprimer complètement cette autorisation?"

Oui, vous avez raison, la corbeille a toujours tendance à penser que c'est une action de suppression. Donc, pour différencier le détachement et la suppression, vous devez utiliser uniquement des icônes différentes. Essayez quelque chose comme ça.

enter image description here

Utilisez une grille modifiable simple pour gérer vos autorisations.

  1. Utilisez la zone de recherche pour rechercher les autorisations existantes à la fois dans la grille et la base de données.Si une autorisation existe dans la grille, affichez-la simplement si elle existe dans la base de données, donnez à l'utilisateur la possibilité d'ajouter cette autorisation à la grille sinon Invitez-le à ajouter cette nouvelle autorisation.
  2. Donnez des info-bulles à chaque action en aidant l'utilisateur à comprendre ce que représente chaque action.
  3. Enfin, mettez en surbrillance l'action de suppression de l'autorisation en rouge, ce qui signifie qu'elle supprimera définitivement cette autorisation.Vous pouvez également afficher la boîte de dialogue de confirmation une fois que l'utilisateur a cliqué dessus.

J'espère que cela t'aides.

5
prazor9