Utilisateurs et droits d'accès

platon179 Messages postés 237 Date d'inscription lundi 20 mai 2002 Statut Membre Dernière intervention 22 juillet 2011 - 2 mai 2006 à 10:53
platon179 Messages postés 237 Date d'inscription lundi 20 mai 2002 Statut Membre Dernière intervention 22 juillet 2011 - 3 mai 2006 à 08:12
Bonjour a tous :)


Je dois actuellement réaliser un outil devant pouvoir être utilisé par
plusieurs utilisateurs, pour un Lycée, donc par exemple élèves, profs,
CPE, secrétariat, .... L'architecture est organisée autour de
différents modules, par exemple gestion des notes, des absences, des
remplacements des profs, etc...

Mon souci est que chaque personne ne doit pas avoir les mêmes droits
d'accès, forcément (mais pourquoi les élèves ont pas le droit de
modification sur les notes ? :p)


Or, je sais pas du tout comment m'en sortir à cause de l'architecture
modulaire... Etant donné qu'on ne sait pas à priori le nombre de
modules qui seront disponibles, je ne vois pas du tout comment
implémenter les droits d'accès.De plus, l'accès ne doit pas se faire au
niveau du module même mais au niveau de chaque fonctionnalité du module
: un élève pourra consulter ses notes, mais pas les modifier...


J'ai pensé à utiliser un champ de bits ou une chaîne de caractères du
style --X-- dans une base SQL, chaque caractère représentant un droit d'accès pour une
fonction d'un module particulier, avec un substr pour l'accès à un
droit particulier... Mais comme on ne connaît ni le nombre de modules
ni le nombre de fonctions par module, est-ce la meilleure solution ?


Bonne journée ++

8 réponses

cs_spyro666 Messages postés 137 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 28 août 2007
2 mai 2006 à 11:18
Tu pourrais faire en sorte que par exemple un élève ait un droit qu'on nomerait 0, un prof 1, une secrétaire 2 et ainsi de suite, bref plus on remonte dans la hiérarchie plus ton grade de droits augmente.

A la connexion tu définit une superglobale du nom de droit avec la valeur de du champ dans ta base de donnée(d'après la fonction de la personne dans l'école, soit lycéen ou prof etc...) et au début de tes fonctions tu fais un test par rapport à cette superglobale (par exemple $_SESSION['droits'] > 0 limiterais l'accès à tous les non élèves).

Je pense que comme ça tu pourrais y arriver.

Spyro666 contre le 555
0
platon179 Messages postés 237 Date d'inscription lundi 20 mai 2002 Statut Membre Dernière intervention 22 juillet 2011 2
2 mai 2006 à 11:32
En fait j'avais également pensé à ta méthode, mais l'organisation ne peut pas être hiérarchique...
On peut par exemple définir que le secrétariat est d'un niveau supérieur au prof, mais les secrétaires n'ont quand meme pas le droit de modification sur les notes. La personne souhaite absolument avoir un outil dans lequel les droits sont limités au strict minimum, rien de plus que ce qu'on a besoin... Il est donc hors de question pour eux de laisser les secrétaires modifier ou supprimer les notes :/

++
0
cs_chamallow Messages postés 363 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 29 janvier 2007 1
2 mai 2006 à 13:48
Et bien, tu pourrais faire un table avec plusieurs champs, par exemple :
-champs modifNote
-champs consultationNote,
-etc etc

Et pour chaque utilisateur dans le base, on met un droit, par exemple l'élève pourrait avoir pour les notes le droits 1(voir les notes) et pour consultationNote le droit 0(droit de rien), et pour la modif pour le prof on mettrait 2.

En fait l'idée serait de lister tous les droits possibles et d'en faire des champs et ensuite définir des codes pour les droits.

C'est ptet pas génial, mais ca peut s'avérer pratique dans certains cas.
0
platon179 Messages postés 237 Date d'inscription lundi 20 mai 2002 Statut Membre Dernière intervention 22 juillet 2011 2
2 mai 2006 à 13:54
Oui je veux bien, mais comme on se sait pas à priori combien de modules seront disponiles, on peut pas faire un champ par droit d'accès... Mais je pense avoir trouvé une solution : une table avec 2 champs : un ID utilisateur, et une liste d'autorisations, séparées par n'importe quel caractère....

Si quelqu'un a tout de même une autre idée, je suis toujours preneur :)

Merci à vous deux en tout cas

Enjoy ++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_chamallow Messages postés 363 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 29 janvier 2007 1
2 mai 2006 à 14:04
Et bien c'est pas grave si tu connais pas le nombre de modules ! A chaque fois que tu as un nouveau module qui nécessite un droit, et bien tu peux rajouter une colonne à ta table. J'en connais qui le font ...
0
cs_spyro666 Messages postés 137 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 28 août 2007
2 mai 2006 à 14:10
Ou alors tu fais un table avec les droits et les ID des utilisateur ou un ID peut apparaître plusieurs fois et un droit aussi. Genre le droit d'acces pour le module 1 s'appel 1, celui pour le 2 s'appel 2 et ainsi de suite, ou si tu doit pouvoir accéder par exemple aux notes sans les modifier ce serait le droit 1, si tu peux les modifier c'est le droit 2, si tu peux mettre des absences c'est 3 et ainsi de suite.

Spyro666 contre le 555
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
2 mai 2006 à 23:36
Salut,

un champ numérique pour chaque personne qui définit le "groupe de modifications", et une table "groupes" qui elle regroupe différents champs avec "modifnotes", etc... tel personne faisant partie de tel groupe pourra modifier les notes, etc..

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
0
platon179 Messages postés 237 Date d'inscription lundi 20 mai 2002 Statut Membre Dernière intervention 22 juillet 2011 2
3 mai 2006 à 08:12
Ree :)

Merci a tous pour vos réponses, en fait on a trouvé une solution qui s'intègre parfaitement avec le système actuel... :D
On créee une table groupes, qui contient un ID de groupe, un nom et une liste de méthodes (avec les noms des objets correspondants) auxquelles il a le droit d'accéder. Après, on joint un utilisateur à un ou plusieurs groupes, pour déterminer à quelles fonctions il a le droit d'accéder...

Merci à tous
Bonne journée ++
0
Rejoignez-nous