OVH Cloud OVH Cloud

petit prob

8 réponses
Avatar
vittorioM
Bonjour,
je suis en train de créer une application mais j'ai un problème.
j'ai plusieurs utilisateurs et je dois leurs assignés des droits différents:

administrateur
utilisateur avec pouvoir
utilisateur
lecteur

le problème c'es tque je ne sais pas comment my prendre
j'ai déja créer une base de donnés avec les noms des utilisateur mais pour
le reste ....

merci d'avance

--

8 réponses

Avatar
Ronnie Garcia
Bonjour,
je suis en train de créer une application mais j'ai un problème.
j'ai plusieurs utilisateurs et je dois leurs assignés des droits différents:

administrateur
utilisateur avec pouvoir
utilisateur
lecteur

le problème c'es tque je ne sais pas comment my prendre
j'ai déja créer une base de donnés avec les noms des utilisateur mais pour
le reste ....


Si tes niveaux de droits (ou ton application) deviennent complexes, je
te conseille de te pencher sur le principe des roles.

--
Ronnie Garcia <ronnie at mk2 dot net>

--

Avatar
Jerome
On Thu, 28 Oct 2004 10:14:09 +0000, vittorioM wrote:

Bonjour,
je suis en train de créer une application mais j'ai un problème.
j'ai plusieurs utilisateurs et je dois leurs assignés des droits différents:

administrateur
utilisateur avec pouvoir
utilisateur
lecteur

le problème c'es tque je ne sais pas comment my prendre
j'ai déja créer une base de donnés avec les noms des utilisateur mais pour
le reste ....

merci d'avance
Bonjour


Le plus simple serait d'ajouter une colonne dans ta table des
utilisateurs. Cette table serait donc sous la forme : login,
password,email,droits, etc où la colonne "droits" serait, sous forme
codée, les droits des utilisateurs. On peut envisager par exemple : 0
pour admin, 1 pour user avec pouvoir, etc.
Au moment de l'authentification, il faut stocker cette information dans
une variable de session pour que l'utilisateur navigue sur le site avec
ses droits.

Bon courage

--
Jerome
+----------------------------------------------------+
Linux user #347847 registered on http://counter.li.org
+----------http://www.mandrakelinux.com -------------+

--

Avatar
Sebastien
Si tes niveaux de droits (ou ton application) deviennent complexes, je
te conseille de te pencher sur le principe des roles.


Pourrais-tu développer un petit peu stp ? Merci.

--

Avatar
Rene Belanger
De quelle façon que veux tu que l'usager identifi dans ton application?
Cela va déterminer de quelle type de gestion que tu va utiliser. il y a la
gestion des sessions, htacess, et probablement bien d`autre. Tu dois de
définir un fonction en paramètre l`usager et le code de protection de la
pages courante, et retourner la valeur vrai ou faux pour savoir si usager
que tu as passe en paramètre est Ok pour lire cette page. La fonction est
placé au début de chaque page que tu veux protéger.

j`espères que ça va te donner des idées pour construire ta gestion.

Bonne chance.
Avatar
Moulin Mathieu
vittorioM wrote:

Bonjour,
je suis en train de créer une application mais j'ai un problème.
j'ai plusieurs utilisateurs et je dois leurs assignés des droits
différents:

administrateur
utilisateur avec pouvoir
utilisateur
lecteur

le problème c'es tque je ne sais pas comment my prendre
j'ai déja créer une base de donnés avec les noms des utilisateur mais pour
le reste ....

merci d'avance


Un champ 'droit' dans ta table 'user', avec corespondance :
0 = admin
1 = user_pouv
2 = user
3 = lecteur

Ensuite tu créé un table 'droit', avec 2 champs :
page = nom de la page concernée
droit = droit sur la page

Enfin, lorsque qqun est loggué, à chaque requête sur une page il suffit de
vérifier si le droit de l'utilisateur est suffisant ...

Si un admin est aussi un user_pouv qui est aussi un user qui est aussi un
lecteur, la requête est simple : "SELECT t1.droit , t2.droit FROM user as
t1 , droit as t2 WHERE t1.login = '$login' AND t2.page = '$page'".
Si tu vois ce que je veux dire ...

----------------
Mathieu Moulin - lemathou at free point fr
Linux ? Ma liberté ...

--

Avatar
Laurent Seguin
Moulin Mathieu ,
le 29 oct. 2004 14:51:02, écrivait ceci:


Un champ 'droit' dans ta table 'user', avec corespondance :
0 = admin
1 = user_pouv
2 = user
3 = lecteur

Ensuite tu créé un table 'droit', avec 2 champs :
page = nom de la page concernée
droit = droit sur la page


Perso j'aurais plutôt fait :
users(
email -> va
...
)
pages(
uri -> va
...
)
auth(
user -> FK users.email
uri -> FK pages.uri
droit -> int
)

Enfin, lorsque qqun est loggué, à chaque requête sur une page il
suffit de vérifier si le droit de l'utilisateur est suffisant ...


Pareil mais avec la gestion des jointures :-)

SELECT droit
FROM users,auth,pages
WHERE users.email=auth.user
AND auth.uri=pages.uri
AND users.email='$login'
AND page.uri='$page'

Avatar
Marc
...

SELECT droit
FROM users,auth,pages
WHERE users.email=auth.user
AND auth.uri=pages.uri
AND users.email='$login'
AND page.uri='$page'


la clé pour rentrer sur le systeme dans ce cas est l'adresse email.
vu de la position d'un hackeur, il devient intéressant de modifier ses
cookies et de voir le comportement du systeme ...

et pourquoi ne pas creer des id sur chaque table pour les foreign keys ?

sinon l'idée est tres sympathique. Manque juste la notion de groupe.

Avatar
Laurent Seguin
Marc , le 01 nov. 2004 12:40:30, écrivait ceci:

...

SELECT droit
FROM users,auth,pages
WHERE users.email=auth.user
AND auth.uri=pages.uri
AND users.email='$login'
AND page.uri='$page'


la clé pour rentrer sur le systeme dans ce cas est l'adresse email.


Par exemple... Mais bon AMHA a part des cas précis l'email est généralement
unique et donc peut servir à l'identification. Si ça te fait plaisir on
remplace par login ;)

vu de la position d'un hackeur, il devient intéressant de modifier ses
cookies et de voir le comportement du systeme ...


On a parlé cookie quelque part ?

et pourquoi ne pas creer des id sur chaque table pour les foreign keys ?


Comprend pas la question...

sinon l'idée est tres sympathique. Manque juste la notion de groupe.


Bien sur la c'est un exemple basique ou la notion de droit est un simple
entier dans la table de jointure, en fonction de l'applicatif on peu faire
plus complet mais ce n'est apparement pas ca qui a été demandé. Mais bon la
on s'éloigne un peu de PHP pour entrer dans la modélisation de BdD.