|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Membre confirmé
![]() Ingé. Info. Inscription : janvier 2008 Messages : 338 ![]() |
Bonjour à tous, j'ai un soucis d'ordre conceptuel.
Je vous plante le décor: Code :
La solution brutale serait pour chaque element et pour chaque groupe une entrée dans GROUPE_PERMISSION_ELEMENT. Ensuite j'avais pensé à d'autre du type considérer que s'il n'y à pas d'entrée, c'est une restriction automatique s'il y a entrée alors permettre les booléens activé. Ou complètement l'inverse une autorisation automatique et une restriction si il y a entrée. Ou même un mix des deux, càd la lecture en autorisation auto et écriture/suppression en restriction auto. (je sais pas si j'ai été assez clair) Mais cela dis mon problème principal, serait au niveau des profondeurs d'éléments(c'est une gestion de dossier). j'aimerai pouvoir me passer de triggers/requêtes stockées qui feraient: Code :
Je suis conscient que c'est un peu fouillis comme explication, donc n'hésitez pas à me demander des précisions. Merci.
__________________
Memento Quia Pulvis Es, Et In Pulverem ReverteriS |
||||
|
|
00
|
|
|
#2 | ||
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 176 ![]() |
Bonjour Pymento,
Citation:
Tout d'abord, juste un point MCDesque : ton entité Citation:
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
||
|
|
00
|
|
|
#3 |
|
Membre confirmé
![]() Ingé. Info. Inscription : janvier 2008 Messages : 338 ![]() |
Oui exactement.
__________________
Memento Quia Pulvis Es, Et In Pulverem ReverteriS |
|
|
00
|
|
|
#4 | ||
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 176 ![]() |
Autre chose :
Citation:
Citation:
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
||
|
|
00
|
|
|
#5 | |
|
Membre confirmé
![]() Ingé. Info. Inscription : janvier 2008 Messages : 338 ![]() |
Citation:
2) J'ai pas très bien saisie, mais en gros c'est es ce que si je donne la lecture à un element, il faut forcément que la lecture soit donnée aussi à son parent ? Et c'est justement cet aspect la ou je 'bloque'. ou alors je n'ai pas bien compris la question
__________________
Memento Quia Pulvis Es, Et In Pulverem ReverteriS |
|
|
|
00
|
|
|
#6 | |
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 176 ![]() |
Citation:
Veux-tu pouvoir indiquer un parent dans #id_element de GROUPE_PERMISSION_ELEMENT ? ==> avec pour conséquence de rendre valable les autorisations indiquées pour tous ses enfants. Veux-tu pouvoir, malgré tout, indiquer un élément non-parent dans #id_element de GROUPE_PERMISSION_ELEMENT ? ==> avec pour conséquence de pouvoir agir sur un élément, en particulier, sans tenir compte des éventuelles autorisations du parent auquel il est attaché.
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
|
|
|
00
|
|
|
#7 |
|
Membre confirmé
![]() Ingé. Info. Inscription : janvier 2008 Messages : 338 ![]() |
Je rajoute au passage que ma profondeur, est grande et indéfinie et que l'id_parent peut être null, c'est pour ça que je ne comprend pas forcément pourquoi me demandes tu si je veux mettre une "profondeur" dans mon id_element dans la table permission...
Je reprend un peu mon explication, peut être nous somme nous mal compris. Donc mon #id_element fait référence à un dossier En gros avec l'id d'un element je vais pouvoir obtenir son parent dans la table Elements et ses groupes associés avec leurs droits dans la table Permission. Enfait il me manque la manière d'insérer dans la table permission. Ou alors une façon différente de procéder. Désolé si je vous fait répéter.
__________________
Memento Quia Pulvis Es, Et In Pulverem ReverteriS |
|
|
00
|
|
|
#8 | |||||||||||||||
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 176 ![]() |
Bonjour Pymento,
Bien, reprenons par l'exemple. USERS (id,nom) : Code :
Code :
Code :
Citation:
Citation:
n'aura aucune autorisation puisqu'il n'est attaché à aucun groupe. ELEMENTS (id,nom,#id_parent) Citation:
Code :
Code :
Enfin, et c'est en fait l'objet de ma dernière question : GROUPE_PERMISSION_ELEMENT (#id_groupe,#id_element,lecture,ecriture,suppression) : Code :
En relisant tes interrogations, je crains que tu confondes la conception de la base de données et les processus (les programmes) qui vont l'utiliser. En effet, la conception ne résout pas tout ; les programmes vont se baser sur la conception pour faire respecter "la règle du jeu" (les règles de gestion de l'application). En fonction de ce que tu vas décider, il y aura un programme qui, à chaque tentative d'accès à tes "éléments", balayera tes tables pour savoir si, en final, le demandeur possède les bonnes autorisations.
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
|||||||||||||||
|
|
00
|
|
|
#9 |
|
Membre habitué
![]() Daniel BALLANDRetraité MO Inscription : mai 2008 Messages : 68 ![]() |
En somme : que tous les droits accordé à un Niveau soient automatiquement reportés sur les Sous-Niveaux qui en dépendent.
Mais avec possibilité d'écraser un des Sous-Niveaux, avec un nouveau report sur les Sous-Sous-Niveaux suivants, etc... Et ces droits enregistrés en base et non dans le programme, qui ne fera qu'appliquer au cas par cas au niveau final, où qu'il se trouve, selon les dernières conditions valables (en remontant la liste). C'est ça ? |
|
|
00
|
|
|
#10 |
|
Membre habitué
![]() Daniel BALLANDRetraité MO Inscription : mai 2008 Messages : 68 ![]() |
Mais alors ...
Si tu modifie un niveau "père", faudra revisiter tous les niveaux "descendants" qui auront été écrasés. |
|
|
00
|
|
|
#11 | |||
|
Membre confirmé
![]() Ingé. Info. Inscription : janvier 2008 Messages : 338 ![]() |
Citation:
Citation:
Citation:
Mes interrogations se portent sur le nombre d'entrée à affecter, de toute façon des 'seulement' enfants seront peut être amenés à devenir des parents, c'est pourquoi il faut que je puisse mettre en place le même mode de fonctionnement pour tout les élements. Concrètement et pour aussi répondre à #dba01, c'est exactement ça, Si je ne spécifie pas de règles, ils agissent comme leur père jusqu'a que j'en définisse. ////////////////////////////////////// J'ai les idées un peu plus claires maintenant, arrêtez moi si vous trouvez des incohérences: Aucun de mes éléments sont accessibles de base, je vais pour chaque groupe leur donner accès en lecture a un élément racine, de là, ils vont pouvoir accéder à toute la profondeur du dossier, jusqu'a que je décrète qu'un tel dossier ne pourra être lu que par un et un seul groupe. Pareil pour l'écriture et modification. Pour chaque appel j'irai dans ma base de donnée vérifier si il existe une règle à appliquer dans le cas contraire je conserve celle du parent (avec des input hidden, pour m'éviter plus d'accès à la base) ça me réduit donc le nombre d'entrée au simple règles sur un dossier "bifurcatif" ( ouai je viens d'inventer le terme !). N'hésitez pas à donner votre avis et vos doutes.
__________________
Memento Quia Pulvis Es, Et In Pulverem ReverteriS |
|||
|
|
00
|
|
|
#12 | |
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 176 ![]() |
Bonjour Pymento et Dba01,
Citation:
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
|
|
|
00
|
|
|
#13 |
![]() ![]() |
Il me semble avoir été confronté à un problème similaire, dans un temps qui commence à être lointain où j'étais responsable qualité...
Les procédures étaient affectées à des groupes de destinataires et certains destinataires avaient, en plus des procédures de leur(s) groupe(s), des procédures spécifiques à appliquer. J'avais alors résolu le problème en créant une table pour l'attribution de ces seules procédures spécifiques et j'avais donc ce schéma : procedure -0,n----affecter----1,n- groupe -1,n----comprendre----0,n- destinataire |---------------0,n----affecter_specifiquement----------------------------0,n----------| Pour avoir la liste des procédures affectées à une personne, je faisais une union de deux requêtes traduisant les deux associations "affecter". Dans ton cas, si j'ai bien compris ton besoin, tu pourrais affecter prioritairement des droits aux dossiers à des groupes puis dans une autre table les droits spécifiques qui diffèrent des droits des groupes.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
|
00
|
|
|
#14 |
|
Membre confirmé
![]() Ingé. Info. Inscription : janvier 2008 Messages : 338 ![]() |
@CinePhil
Ca peut être effectivement une solution à envisager pour une future amélioration, mais pour l'instant je souhaite seulement me cantonner aux droits de base d'un groupe. Lecture/écriture. Par contre pour rebondir sur la post-solution, c'était trop beau et trop simple pour être vrai Malheureusement garder en mémoire les règles du derniers parent ne suffit pas car je suis sur une interface ou tout les éléments restent disponibles. Càd que je vais pouvoir cliquer sur n'importe quel élément pourvu qu'il est sur le chemin de l'élément en cours alors j'ai seulement deux solutions assez lourdes: 1.Comme depuis le début, une entrée pour chaque groupe pour chaque élément. +++ : pour la consultation un petit select pour obtenir les droits - - - : taille de la table, et update recursif lors d'un changement 2.Sinon, mettre seulement une entrée par spécification. et lors de la consultation faire une requête stockée qui va récupérer les derniers droits valables. +++: optimisation du nombre d'entrée - - - : requête lourde? pour chaque mouvement de repertoire. maintenant les droits ne se paramètre que très rarement, alors que la navigation elle est constante et surtout multiple. Donc je penche pour la 1. Mais ça me fais revenir à mon point de départ !
__________________
Memento Quia Pulvis Es, Et In Pulverem ReverteriS |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com