2010-09-20 8 views
2

J'ai un contrôle d'accès basé sur des règles et des autorisations, ce qui signifie que chaque groupe dispose de permissions pour accéder à certains contrôleurs et que les utilisateurs font partie de ces groupes. (Ceci est implémenté dans le framework CakePHP). Mais cette structure me permet de savoir quel utilisateur est autorisé à "utiliser", accéder aux rapports ou ajouter de nouveaux utilisateurs, mais je me demandais quels sont les meilleurs modèles de conception, ou les meilleures pratiques que je pourrais utiliser pour implémenter la visibilité des données dans certains de ces groupes. Par exemple, le membre du groupe "Utilisateur Ordinaire" ne peut voir que ses propres données (data.user_id = this.user_id) mais le membre de "Supervisors" devrait voir plus de données (data.user_id = this.supervisor_user_id) et le "The Boss" Les membres devraient tout voir.Contrôle d'accès utilisateur et visibilité des données

J'espère que je me suis fait clair, de toute façon le modèle d'authentification J'utilise est basé sur ce modèle:

http://www.studiocanaria.com/articles/cakephp_auth_component_users_groups_permissions_revisited

Répondre

1

Il suffit d'ajouter vos autorisations à un before_find(). Vous pouvez le faire modèle par modèle ou le construire dans le modèle app_model. Cela vous permettra de limiter les données ou d'ajouter/supprimer des champs sans devoir modifier le contrôleur ou afficher les fichiers.

+1

Je regarde plus en termes de conception de base de données et quelque chose de plus spécifique, comment insérer ces "droits de visibilité" sur les données elle-même –