IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Système de gestion de droits utilisateurs


Sujet :

Langage PHP

  1. #1
    Expert confirmé
    Avatar de krachik
    Inscrit en
    Décembre 2004
    Messages
    1 964
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 964
    Points : 4 015
    Points
    4 015
    Par défaut Système de gestion de droits utilisateurs
    Bonjour

    J'ai lu les façons de gérer facilement les droits utilisateurs et celle qui saute à l'œil est l'utilisation des nombres binaires ou encore mieux de l'hexadecimal avec des opérateurs de bits. La question est donc de savoir ce qui se passe pour les gros sites ou les forums où il existe un grand nombre de droits et plusieurs niveaux de droits on risquerait d'être à court de bits si on part du principe que
    000000000000000000000001 correspond à LIRE par exemple ainsi de suite.
    Ou alors il faut encore passer par des combinaisons?

    Merci pour les réponses.
    krachik
    Je suis ce que je suis grâce à ce que nous sommes tous Humanité aux Humains!! !

    Entre ce que je pense, ce que je veux dire, ce que je crois dire, ce que je dis ce que vous avez envie d'entendre, ce que vous croyez entendre, ce que vous entendez, ce que vous avez envie de comprendre, ce que vous comprenez ... Il y a dix possibilités que nous ayons des difficultés à communiquer. Mais essayons quand meme ....... E. Wells

  2. #2
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 193
    Points : 28 077
    Points
    28 077
    Par défaut
    A court de bits ??????

    Avec ton principe, une variable de 32 bits peut gérer jusqu'à 32 droits.
    10 variables en gèreront 320, 100 en gèreront 3200, etc ....
    Avant d'être à court de bits (mémoire donc), tu as le temps de voir venir

    Plus sérieusement, même avec cette méthode, rien ne t'oblige à stocker tous les droits dans la même variable.
    Au contraire, il serait même plus propre de les répartir par familles en gardant éventuellement quelques bits de réserve pour d'éventuelles évolutions futures.

    Ceci dit, si tu n'as que 4 droits, même s'ils pourraient être découpés en 4 familles différentes, il n'est pas forcément nécessaire de créer 4 variables de 32 bits pour un seul bit chacune. Ou alors, on utilise dans ce cas-là des variables type boolean.
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  3. #3
    Expert confirmé
    Avatar de krachik
    Inscrit en
    Décembre 2004
    Messages
    1 964
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 964
    Points : 4 015
    Points
    4 015
    Par défaut
    D'accord, je vois à peu près ce que tu veux dire; j'avais pensé aussi répartir par famille. Juste un point à éclaircir si je prend un exemple où on gère les droits d'accès et d'utilisation d'une cuisine et d'un salon par exemple

    Je vais partir du principe que je réparti en CUISINE et SALON
    Par exemple
    CUISINE :
    • ALLUMER LUMIERE
    • ETEINDRE LUMIERE
    • OUVRIR FRIGO

    SALON :
    • ALLUMER LUMIERE
    • ETEINDRE LUMIERE
    • ALLUMER TELEVISION


    Soit je dis que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    define('ACCES_CUISINE', 0x01);
    define('ACCES_SALON', 0x02);
    Soit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    define('ALLUMER_LUMIERE_CUISINE', 0x01);
    define('ETEINDRE_LUMIERE_CUISINE', 0x02);
    define('OUVRIR_FRIGO_CUISINE', 0x04);
    define('ALLUMER_LUMIERE_SALON', 0x08);
    define('ETEINDRE_LUMIERE_SALON', 0x10);
    define('ALLUMER_TELE_SALON', 0x20);
    Ce que je me demande c'est: que se passe t il si j'avais scindé en 2 familles(cuisine et salon), et que je veux donner un accès à la cuisine à l'utilisateur mais qu'il éteigne pas la lumière c'est à dire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $droits |=ALLUMER_LUMIERE_CUISINE |OUVRIR_FRIGO_CUISINE
    //plutot que de faire
    $droits |= ACCES_CUISINE
    Je ne sais pas si tu vois ce que je veux dire? à moins que moi je cherche à faire un truc trop complexe alors qu'il y a simple
    Je suis ce que je suis grâce à ce que nous sommes tous Humanité aux Humains!! !

    Entre ce que je pense, ce que je veux dire, ce que je crois dire, ce que je dis ce que vous avez envie d'entendre, ce que vous croyez entendre, ce que vous entendez, ce que vous avez envie de comprendre, ce que vous comprenez ... Il y a dix possibilités que nous ayons des difficultés à communiquer. Mais essayons quand meme ....... E. Wells

  4. #4
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 193
    Points : 28 077
    Points
    28 077
    Par défaut
    Tout cela dépend des droits que tu dois définir pour ton utilisateur.

    Si un simple droit d'accès suffit autoriser ou non l'utilisateur à faire tout ce qu'il est possible de faire dans la piece, la première solution suffit.

    Mais si tu dois détailler les droits pour chaque actions possibles dans une pièce alors il te faut évidemment la seconde solution.

    Cela dépend de ce que tu veux mettre en place dans ton projet.


    A noter que la 2nd solution, en plus des droits "Allumer","Eteindre","Ouvrir" peut aussi contenir un droit "Accès". Parce qu'un utilisateur peut, peut-être, ne pas être autoriser à allumer ou éteindre la lumière de la cuisine, ouvrir le frigo, mais avoir tout de même le droit d'accéder à cette cuisine, ne serait-ce que, par exemple, pour aller faire un calin à la cuisinière
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  5. #5
    Expert confirmé
    Avatar de krachik
    Inscrit en
    Décembre 2004
    Messages
    1 964
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 964
    Points : 4 015
    Points
    4 015
    Par défaut
    Ok, ça avance bien, merci à toi

    Si je pars sur la seconde solution sur le fait de détailler les actions possibles, on va déboucher sur mon inquiétude qui m'a poussé à créer la discussion. Si on part sur le principe de gérer une maison:
    -ACCES CUISINE : 10 actions possibles
    -ACCES SALON : 20 actions possibles
    -ACCES TOILETTE : 5 actions possibles
    -ACCES CHAMBRE : 23 actions possibles
    -ACCES AUTRES : 7 actions possibles

    Le nombre d'actions possibles est à titre indicatif pour illustrer ce que je veux dire. Avec ça, ça voudra dire que je dois me taper autant d'actions possibles définies? (si on élimine le cas où on peut faire des combinaisons d'actions ou inclusion dans une telle ou telle catégorie). 65 define ?
    Je suis ce que je suis grâce à ce que nous sommes tous Humanité aux Humains!! !

    Entre ce que je pense, ce que je veux dire, ce que je crois dire, ce que je dis ce que vous avez envie d'entendre, ce que vous croyez entendre, ce que vous entendez, ce que vous avez envie de comprendre, ce que vous comprenez ... Il y a dix possibilités que nous ayons des difficultés à communiquer. Mais essayons quand meme ....... E. Wells

  6. #6
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 193
    Points : 28 077
    Points
    28 077
    Par défaut
    Oui ça c'est inévitable, quelque soit la solution. Tu auras toujours de toute façon au moins autant de vérification à faire que tu as de droits, certains droits étant quand même supérieurs à d'autres, évitant certaines vérifications.

    Si ton utilisateur n'a pas le droit d'accéder à la cuisine, ce n'est pas la peine de vérifier s'il a le droit d'ouvrir le frigo (en partant de l'hypothèse que le frigo est dans la cuisine) car même s'il l'a, il ne pourra de toute façon pas le faire.
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  7. #7
    Expert confirmé
    Avatar de krachik
    Inscrit en
    Décembre 2004
    Messages
    1 964
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 964
    Points : 4 015
    Points
    4 015
    Par défaut
    Ok, on est bien d'accord du coup
    Ce qui m'amène à la prochaine question : vu qu'on dispose de 31 bits sur 32, si je compte utiliser 30 bits pour mes droits et que les options s'écrivent de cette façon :
    Exemple:

    -option 1 => 0000000000000000000001
    -option 2 => 0000000000000000000010
    -option 3 => 0000000000000000000100
    -option 4 => 0000000000000000001000
    ....

    On ne sera toujours pas à court de bits ou alors j'ai zappé une étape de compréhension de la chose?
    Je suis ce que je suis grâce à ce que nous sommes tous Humanité aux Humains!! !

    Entre ce que je pense, ce que je veux dire, ce que je crois dire, ce que je dis ce que vous avez envie d'entendre, ce que vous croyez entendre, ce que vous entendez, ce que vous avez envie de comprendre, ce que vous comprenez ... Il y a dix possibilités que nous ayons des difficultés à communiquer. Mais essayons quand meme ....... E. Wells

  8. #8
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 193
    Points : 28 077
    Points
    28 077
    Par défaut
    32 bits était un exemple. Cela dépend du type de variable que tu va utiliser.

    Si c'est un type Short (je connais pas les correspondances en PHP) tu dispose de 16 bits, de type Int, 32 bits, de type Long, 64 bits.

    Sur une variable de type Int, si tu utilise 30 bits il t'en restera effectivement 2 en réserve.
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  9. #9
    Expert confirmé
    Avatar de krachik
    Inscrit en
    Décembre 2004
    Messages
    1 964
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 964
    Points : 4 015
    Points
    4 015
    Par défaut
    Vu que en php on n'est pas obligé de prédéfinir le type de la variable à la déclaration, il me faudra ensuite passer par un cast pour passer à un long par exemple.

    Dans l'exemple que je donnais plus haut on avait 65 options qui nécessitent plus qu'un type long. Mais si j'ai 200 options, il y aura une alternative?
    Je suis ce que je suis grâce à ce que nous sommes tous Humanité aux Humains!! !

    Entre ce que je pense, ce que je veux dire, ce que je crois dire, ce que je dis ce que vous avez envie d'entendre, ce que vous croyez entendre, ce que vous entendez, ce que vous avez envie de comprendre, ce que vous comprenez ... Il y a dix possibilités que nous ayons des difficultés à communiquer. Mais essayons quand meme ....... E. Wells

  10. #10
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 193
    Points : 28 077
    Points
    28 077
    Par défaut
    Plusieurs Long (ou Int, ou ...), d'où l'idée du regroupement en famille
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  11. #11
    Expert confirmé
    Avatar de krachik
    Inscrit en
    Décembre 2004
    Messages
    1 964
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 964
    Points : 4 015
    Points
    4 015
    Par défaut
    Oui c'est vrai j'avais zappé ça .

    En passant connais-tu un autre système de gestion de droits, moins couteux en calcul et traitements ?
    Je suis ce que je suis grâce à ce que nous sommes tous Humanité aux Humains!! !

    Entre ce que je pense, ce que je veux dire, ce que je crois dire, ce que je dis ce que vous avez envie d'entendre, ce que vous croyez entendre, ce que vous entendez, ce que vous avez envie de comprendre, ce que vous comprenez ... Il y a dix possibilités que nous ayons des difficultés à communiquer. Mais essayons quand meme ....... E. Wells

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SBI] Gestion des droits utilisateurs
    Par booobdez dans le forum SpagoBI
    Réponses: 6
    Dernier message: 11/06/2009, 11h00
  2. Réponses: 3
    Dernier message: 15/09/2008, 16h37
  3. [BO 5.1.8] Renseignements gestion des droits utilisateurs
    Par ninou58 dans le forum Administration-Migration
    Réponses: 5
    Dernier message: 17/07/2008, 22h24
  4. gestion des droits utilisateurs par vba
    Par laurent.w dans le forum Sécurité
    Réponses: 14
    Dernier message: 17/01/2007, 08h09
  5. gestion des droits utilisateurs struts
    Par ijklm dans le forum Struts 1
    Réponses: 1
    Dernier message: 18/05/2006, 19h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo