web-dev-qa-db-fra.com

Comment géreriez-vous la gestion de l'accès des utilisateurs avec 4 niveaux et 9+ rôles uniques?

J'ai creusé la tête à ce sujet et je n'ai pas eu de chance de trouver des cas d'utilisation existants similaires au mien.

J'implémente l'interface de notre logiciel de création de rapports de site Web. Nous avons des problèmes hérités à régler. Le plus gros problème est que l'ancienne version de l'application obligeait les utilisateurs à se connecter séparément en tant que "comptes" différents pour afficher les données.

Les "comptes" ressemblent davantage à des réseaux, où nous avons des réseaux d'entreprise, régionaux et de localisation imbriqués, avec des "réseaux de localisation" contenant les éléments réels qui encapsulent les données suivies. Je suis vague parce que pour une raison quelconque mes patrons n'aiment pas parler des processus en coulisses publiquement ...

Avec le nouveau système, nous avons opté pour une connexion basée sur l'utilisateur saisie à partir de son adresse e-mail. Une connexion utilisateur peut avoir accès à de nombreux réseaux/éléments avec différents niveaux de rôles d'accès possibles pour chacun.

À l'heure actuelle, nous utilisons un contrôle d'arborescence pour permettre le filtrage des comptes pour les rapports et cela fonctionne très bien.

Le problème réside dans la création du front-end pour la gestion de A. le partage de l'accès aux comptes et B. la définition des restrictions de rôle d'accès sur ces comptes partagés.

L'arborescence peut atteindre 4 niveaux de profondeur, et 9 rôles d'accès uniques sont requis, et plus probablement à l'avenir alors que nous déploierons plus d'anciennes fonctionnalités dans la nouvelle application.

Voici quelques options que j'ai trouvées, mais elles ont chacune leurs avantages et leurs inconvénients:

Configuration de l'accès basé sur le compte

enter image description here

Cela semblait être la façon la plus évidente de le faire. Je me heurte au problème où vous pouvez avoir un accès utilisateur sur 2 réseaux d'entreprise, mais seulement 3/9 autres rôles d'accès sur un, et 4/9 rôles d'accès séparés sur l'autre. Dans notre système, vous ne pouvez accorder que des rôles d'accès à votre propre compte. Alors, quels rôles dois-je montrer à côté? Chaque compte est également stocké séparément dans la base de données, alors comment les regrouper? Il est également possible de créer des groupes d'accès conflictuels de cette façon.

Configuration de l'accès basé sur les rôles

enter image description here

La configuration de l'accès basé sur les rôles supprime le problème des groupes d'accès en conflit, mais cela peut se compliquer si un utilisateur a besoin de plusieurs rôles ... De plus, vous ne savez pas si cela dérouterait les utilisateurs.

Configuration de l'accès basé sur une table

En raison des restrictions de spam, je ne peux pas poster ceci en tant que lien, mais utiliser la même URL imgur et ajouter /Jbudh.png à la fin.

Les tableaux sont faciles à comprendre pour nos utilisateurs ... mais le développeur semble penser que cela pourrait être difficile à réconcilier lors de l'enregistrement dans la base de données car des groupes d'accès conflictuels pourraient être recréés ...

Comment résoudrais-tu ce problème?

5
Michael Neth
  • J'ai examiné les trois options et je suis confus par les trois.

En tant qu'utilisateur, je veux savoir ce que je peux faire avec mes droits d'accès. Voici ma suggestion. J'utilise le rôle de Bugzilla comme descriptions de rôle pour être plus concret, et dans la maquette les appelant "pouvoirs spéciaux".

C'est un moyen de résumer , plutôt que de montrer des millions de cases à cocher.

Master-Detail, linked by name

Ce modèle est basé sur l'hypothèse qu'un utilisateur type aura des droits identiques sur un certain nombre d'éléments, par exemple des droits supplémentaires sur leur propre emplacement, puis des droits moindres pour certains emplacements de la même division.

Détails

Les tuiles comme "Whine Master", "Bug Wrangler", "God", "Pleb" doivent être prédéfinies pour des combinaisons de pouvoirs spéciaux que vous savez probables. Ces combinaisons doivent être verrouillées.

Dans la liste déroulante droits pour, il y a une option pour 'nouveaux droits', vous pouvez donc créer de nouvelles combinaisons de droits et leur donner un nom. L'interface devrait suggérer un nom par exemple Bug Wrangler + pour quelque chose qui ressemble à un Bug Wrangler avec un pouvoir spécial supplémentaire. Si vous cliquez sur une case à cocher sans sélectionner "nouveaux droits" dans la liste déroulante, l'interface fera le changement pour vous.


Modifier 1

Affichage de toutes les cases à cocher

Ici, en revanche, à quoi cela ressemblerait si vous cochez toutes les cases. Vous pourriez vous en tirer si vous avez 9 "pouvoirs spéciaux", et vous devriez être en mesure de trouver une façon plus nette d'étiqueter les colonnes que moi. . Il serait certainement utile d'utiliser des chaînes de texte et des info-bulles plus courtes pour les descriptions de puissance spéciales.

C'est plus une illustration de pourquoi je ne veux pas essayer de tout montrer sans résumer. La critiquer éventuellement vous aidera à affiner votre description de vos besoins. Cela pourrait même être ce que vous voulez. Je n'aime pas ça. Je pense que cela montre trop de détails à la fois - mais peut-être que vous devez le faire.

All cols; diagonal labels

La bande zébrée du panneau principal remplie de cases à cocher, si elle est utilisée, doit être verticale, sinon la bande zébrée des titres de colonne doit être perdue. Un espace supplémentaire entre les colonnes chaque cinquième colonne serait également utile.

Sur ce type de grille, il est très facile de cliquer accidentellement sur l'une des cases lors du passage, puis de se demander laquelle vous avez accidentellement changé. Ainsi, les boutons d'annulation et de validation et les modifications en attente affichées en gras ou autrement mis en évidence seraient utiles.

Vue principale-détail à l'aide de la commande de tabulation (verticale)

Enfin une adaptation de la première approche maître + détail, mais cette fois en supprimant les noms intermédiaires (les noms comme 'Whine Master' et 'Bug Wrangler'). Les noms intermédiaires sont utiles pour accélérer la saisie et la synthèse des données, uniquement si les mêmes combinaisons sont fréquemment réutilisées. Les voici pas.

enter image description here

La façon de l'utiliser est beaucoup moins évidente que la première version, mais elle fournit un moyen direct de lier les éléments à leurs détails.

Je ne propose pas que cette solution soit prête à fonctionner telle quelle. Il montre plutôt une direction dans laquelle vous pouvez aller. Il se déplace davantage vers le style de l'explorateur de fichiers dans Windows, avec un arbre à gauche et des détails à droite. Au lieu d'afficher les fichiers et les détails dans le volet droit, nous affichons une liste d'autorisations.

La bande zébrée doit être supprimée et la couleur de remplissage, comme la bordure violette, est mieux utilisée pour montrer ce qui appartient à quoi. Des pointes de flèches aux extrémités des lignes pointillées pourraient également aider.

En somme

Donc, trois façons de présenter/modifier l'information.

  • Un utilisant des noms intermédiaires.
  • Un montrant toutes les cases à cocher.
  • Un utilisant un affichage maître-détail sans noms intermédiaires.
9
James Crook