Bonjour à tous,
Je viens vous demander de l'aide parce que je débute en PHP et que j'ai un gros souci de compréhension.
Je m'explique : je viens de débuter une formation en alternance, mais il n'y a aucun développeur avec moi. On m'a chargée de finir le développement d'une application web interne déjà bien avancée (beaucoup trop pour simplement recommencer) et le précédent stagiaire s'y connaissait bien mieux que moi. Enfin bref, ce n'est pas le sujet !
En gros, l'application (en PHP) est conçue pour que plusieurs types d'utilisateurs puissent se connecter et donner ou non leur autorisation. C'est (selon moi) assez complexe, car il y a plusieurs types d'utilisateurs (A, B, C, D...) et certains de ces utilisateurs peuvent avoir des rôles différents en fonction des zones qu'ils gèrent (A-prim, A-bis, B-prim, B-bis, B-ter....).
Mon problème est le suivant : la personne qui a écrit le code a géré les permissions des utilisateurs avec du code ressemblant à ceci :
Le problème, c'est que comme je débute, je ne comprends pas cette façon de faire. Le peu que j'en ai compris, je crois qu'il s'agit d'un calcul qui renvoie un résultat en binaire, mais je ne suis pas sûre.
Code : Sélectionner tout - Visualiser dans une fenêtre à part if ($toutes_perms || ($_SESSION[TABLES_NAME.'_permissions']>>(BGA-1))%2 || ($_SESSION[TABLES_NAME.'_permissions']>>(OSAU-1))%2 || ($_SESSION[TABLES_NAME.'_permissions']>>(RESP_ZONE-1))%2)
Dans ma base de données, j'ai bien une table "permissions" avec deux champs (ID et nom) et une autre table "utilisateurs" avec plusieurs champs donc "nom" et "permissions". Ce dernier champ contient des valeurs 1, 2, 4, 8, etc. (c'est ce qui me fait penser à un système en binaire).
Quelqu'un pourrait-il m'expliquer ce calcul ? Je n'ai plus aucune personne "physique" à qui demander et je n'ai rien trouvé de probant sur internet.
J'ai conscience que c'est une question étrange, mais vous êtes ma dernière chance. Merci à ceux qui prendront le temps de lire mon SOS jusqu'au bout et qui me répondront.
Lolotte
PS : C'est la première fois que je poste sur un forum, alors j'espère avoir été assez claire. Et sinon, demandez et je ferai de mon mieux.
Partager