CMS rôles et des niveaux d'accès
Je suis actuellement à la rédaction d'un CMS et rappelle quelqu'un (il aurait été ici) critiquer l'existant de la CMS pour ne pas avoir un assez robuste autorisations de l'utilisateur du système. J'ai une méthode de prévu mais je pense qu'il est tombé dans le piège habituel de l'être un peu trop fine qui rend la compréhension et de l'application d'une horreur pour les utilisateurs finaux.
Je pense avoir un éventail des rôles d'utilisateur avec des autorisations serait la réponse à cette question, donc je suppose que ma question est: est-ce
Quels sont les rôles par défaut que vous aimeriez voir dans un CMS et de quel genre d'autorisations seraient associés avec ces?
Merci d'avance!
OriginalL'auteur |
Vous devez vous connecter pour publier un commentaire.
C'est la "meilleure pratique", j'ai retrouvé avec dans la plupart des projets et je suis très heureux avec:
1. Les rôles
Quand il s'agit de rôles, je recommande une grande flexibilité, c'est à dire la capacité de créer et de définir des comptes utilisateur et des groupes librement (rôles comme "collaborateur", "manager", etc. ne sont pas codées en dur, mais de les mettre dans un fichier de configuration peut être modifiée par l'application). Le rôle de configuration est inaccessible à l'utilisateur, mais le moteur lui-même devrait être libre de tout codé en dur rôles.
2. Des droits de l'
Des droits de l' est là que les choses doivent être facile à comprendre et à mettre en œuvre.
J'ai fait de très bonnes expériences de travail, et de la vérification, très fine des droits sur le code API de niveau:
mais l'utilisateur ne voit jamais ces. Pour eux, ils sont regroupés dans un très petit nombre de "groupes":
L'utilisateur ne voit jamais le "move" de droite, mais seulement les "Administrer" groupe de défense des droits.
De cette façon, vous de conserver toute la puissance de fines droits dans votre code pour l'avenir - vous pouvez, par exemple, facilement accueillir pour une règle comme "les stagiaires doivent être en mesure de modifier des pages, mais ne pas être en mesure de changer leurs titres, ni de les supprimer", l'ajout d'un atout précieux pour la CMS. Pour l'utilisateur final, cette fonctionnalité reste invisible, et le système de droits et facile à utiliser.
désolé, je suppose qu'il faut lire "groupes de défense des droits". L'idée est que vous créer des rôles comme bon vous semble, et de les équiper les rôles avec les droits spécifiques dont ils ont besoin. Dire, un "Éditeur" obtient le droit de modifier, de créer et déplacer des contenus, mais pas à n'importe quel niveau supérieur de l'administration.
trop mal fait :). J'ai été à la pêche, pour l'opinion où je suis en train de prendre une décision sur un ensemble utile de groupes à présenter aux utilisateurs. Tout d'accord avec les trois répertoriées, je me sens comme il y a encore plusieurs autres à identifier.
OriginalL'auteur
Je cette question un peu auparavant, et obtenu la réponse suivante.
OriginalL'auteur
Avez-vous fait des recherches de solutions existantes, comme RBAC? Tandis qu'un tel système serait le plus susceptible d'être complète overkill pour l'écrou que vous essayez de fissure, il pourrait au moins aider à stimuler la confiance que vous êtes sur la bonne voie.
Cela mis à part, les rôles généraux j'imagine que serait le long des lignes de:
Administrateur - le contrôle Total du système, pouvez afficher les journaux (comme vous devriez être journalisation toutes les modifications), etc. et en plus...
Éditeur - Pouvez mettre du contenu en direct et en plus...
Auteur - Pouvez créer du contenu
Cependant, la façon dont ces rôles sont appliquées dans l'ensemble du système est là que les choses deviennent difficiles, en tant qu'utilisateur spécifique ne serait sans doute avoir des droits différents pour les différentes zones de contenu/modules.
Qui les modérés, les modérateurs? 😉
Jon Skeet? 😉 .
Qui est Jon Skeet?
OriginalL'auteur
Pour la plupart des applications, donc je pense que ça va être vrai pour les Cms ainsi, mes clients préfèrent généralement un des droits de l'approche orientée. Voici comment ça se passe :
Pour rendre les choses un peu mieux, vous pouvez créer plusieurs rôles (Éditeur; Administrateur) pour faire typique de création d'un utilisateur plus facile (en pré-remplissant le formulaire lorsqu'un rôle est choisi).
OriginalL'auteur
J'ai un CMS personnalisé construit sur le Zend Framework qui utilise Zend liste de contrôle d'accès s'étend sur les rôles de base (de sorte que vous pouvez refuser de ressources pour d'autres utilisateurs ou permettre à d'autres d'accéder à des ressources normalement, ils ne pouvaient pas). Ma base de rôles aller de la CMS utilisateurs tout en bas du site "membres", comme suit (je viens d'utiliser une table des utilisateurs pour stocker tous mes authentification).
Développeur
De modifier tout contenu, modifier les mises en page, les paramètres de configuration. Utiliser des outils spéciaux que l'on peut appeler des scripts shell et la force des tâches cron.
Admin
De modifier tout contenu, modifier les mises en page, les paramètres.
Auteur
En modifier le contenu.
Membre
Pouvez afficher l'écran de connexion, mot de passe oublié et rapport de bug.
Maintenant, Zend a une belle ACL de mise en œuvre de sorte que vous pouvez s'étend facilement votre base de classe ACL et d'ajouter de nouveaux rôles qui s'étendent à partir de la base de rôles. Je vais peut-être faire un "Admin" qui a accès à l'un des outils de développement (par exemple, de purge ou de gestion du cache) ou de verrouiller un auteur seulement être en mesure de gérer des blogs (et pas, par exemple, des nouvelles).
OriginalL'auteur
Je n'aurais pas forcément rejeter le contrôle de précision du système que vous avez maintenant. Si vous en avez un qui est adaptable concentrer sur de cacher la complexité en fournissant une interface simplifiée (par exemple, utiliser la façade de modèle ou de l'adaptateur). Les avantages sont que vous fournir aux utilisateurs avec la version simplifiée (simple des autorisations telles que 'admin' pouvez 'supprimer' un 'post'), tout en conservant le grain fin de fonctionnalités si vous en avez besoin plus tard (par exemple plus complexe la gestion des permissions est de permettre de supprimer des postes lorsque le poste est votre propre post dans la catégorie X). Ensuite, vous pouvez fournir une alternative à la version simplifiée de ce besoin dans certains endroits.
OriginalL'auteur
Admin : L'un avec tous les droits
Auteur : celui qui a tous les droits sur un contenu spécifique (comme un blog de l'auteur, qui est propriétaire du blog), a également les autorisations d'ajouter/inviter des utilisateurs à collaborer/afficher le contenu
Collaborateur : celui qui peut modifier/ajouter du contenu pour lequel l'auteur a donné des droits, ne peut pas effacer le contenu ou les inviter/ajouter plus de collaborateurs
Spectateur : celui qui peut voir le contenu si l'auteur est invité à consulter
Éditeurs : L'un, qui peut approuver ou modifier tous les types de contenu
Avoir un grain fin, de contrôle n'est pas une mauvaise idée si vous prévoyez avancée des utilisateurs/développeurs d'utiliser le CMS. Mais pour les débutants comme les CMS, les gestionnaires, les rôles essentiels de rendre le système beaucoup plus utilisable.
OriginalL'auteur
L'administrateur peut créer des utilisateurs + tous les ci-dessous
Rédacteur peut éditer les messages des autres + tous les ci-dessous
Auteur - peut écrire des messages, modifier ses propres messages
OriginalL'auteur
Créateur - responsable de la création et de modification de contenu.
Éditeur - responsable de réglage pour le contenu du message
et le style de la livraison, y compris la traduction et
de localisation.
Éditeur - chargé de libérer le contenu de
utiliser.
Administrateur - responsable de la gestion de l'accès
les autorisations pour les dossiers et les fichiers, généralement accompli
par l'attribution de droits d'accès à des groupes d'utilisateurs ou rôles.
Consommateur, observateur ou invité- la personne qui lit ou
sinon, prend en contenu une fois qu'il est publié ou
partagé.
OriginalL'auteur