Administration des roles
Version 1 - Version active
Avec cette version, l'attribution d'un role pour un utilisateur se fait en insérant l'idRank du role dans la table membre. Ainsi, un utilisateur avec plusieurs roles aura plusieurs entrées dans la table membre.
1. Se connecter a la BDD
mysql -u root -p
2. Acceder a la BDD hackbbs
use hackbbs
3. La table des roles est definie ainsi: (Exemple)
+----+--------+-------------+----------------------------------------------------------------------------------------------+ | id | idRank | labelRank | Description | +----+--------+-------------+----------------------------------------------------------------------------------------------+ | 0 | 0 | Anonymous | Un invite est un visiteur non inscrit | | 1 | 16 | User | Le membre est une personne ou un bot inscrit | | 2 | 32 | Notificator | Le notificateur prévient le correcteur lorsqu'il suspect des erreurs | | 3 | 48 | Corrector | Le correcteur est habilité à proposer une solution lorsqu'une erreur est avérée | | 4 | 64 | Moderator | Le modérateur dispose des droits en écriture sur le serveur pour appliquer les corrections | | 5 | 240 | Admin | L'admin réalise la maintenance du système | | 6 | 255 | Root | System admin | | 7 | 17 | Intel | Le membre dispose des privileges pour acceder aux ressources de l'quipe Intel | | 8 | 18 | Pilot | Le membre dispose des privileges pour acceder aux ressources de l'quipe Pilot | | 9 | 19 | RH | Le membre dispose des privileges pour acceder aux ressources de l'quipe RH | | 10 | 20 | Trainer | Le membre dispose des privileges pour acceder aux ressources de l'quipe Formateur | | 11 | 21 | Architect | Le membre dispose des privileges pour acceder aux ressources de l'quipe Architecte | | 12 | 22 | Developer | Le membre dispose des privileges pour acceder aux ressources de l'quipe Developeur | | 13 | 23 | Pentester | Le membre dispose des privileges pour acceder aux ressources de l'quipe Pentest | +----+--------+-------------+----------------------------------------------------------------------------------------------+
4. L'ajout d'un nouveau role peut se faire avec:
INSERT INTO `rank` VALUES (0,0,'Anonymous','Un invite est un visiteur non inscrit'),(1,16,'User','Le membre est une personne ou un bot inscrit'),(2,32,'Notificator','Le notificateur prévient le correcteur lorsqu\'il suspect des erreurs'),(3,48,'Corrector','Le correcteur est habilité à proposer une solution lorsqu\'une erreur est avérée'),(4,64,'Moderator','Le modérateur dispose des droits en écriture sur le serveur pour appliquer les corrections'),(5,240,'Admin','L\'admin réalise la maintenance du système'),(6,255,'Root','System admin'),(7,17,'Intel','Le membre dispose des privileges pour acceder aux ressources de l\'quipe Intel'),(8,18,'Pilot','Le membre dispose des privileges pour acceder aux ressources de l\'quipe Pilot'),(9,19,'RH','Le membre dispose des privileges pour acceder aux ressources de l\'quipe RH'),(10,20,'Trainer','Le membre dispose des privileges pour acceder aux ressources de l\'quipe Formateur'),(11,21,'Architect','Le membre dispose des privileges pour acceder aux ressources de l\'quipe Architecte'),(12,22,'Developer','Le membre dispose des privileges pour acceder aux ressources de l\'quipe Developeur'),(13,23,'Pentester','Le membre dispose des privileges pour acceder aux ressources de l\'quipe Pentest');
Version 2 (En projet)
Avec cette version, l'attribution d'un role pour un utilisateur se fait en modifiant un masque de role pour l'utilisateur.
l'idRank du role dans la table membre. Ainsi, un utilisateur avec plusieurs roles aura plusieurs entrées dans la table membre.
Les idRank existant ne permettent pas d'utiliser de masque pour attribuer plusieurs role a un utilisateurs. Nous pouvons donc mettre a jour ces idRank en utilisant les bit du binaire:
------------------+
| id | idRank | labelRank | Description |
+----+--------+-------------+----------------------------------------------------------------------------------------------+
| 0 | 0 | Anonymous | Un invite est un visiteur non inscrit |
| 1 | 1 | User | Le membre est une personne ou un bot inscrit |
| 2 | 10 | Notificator | Le notificateur prévient le correcteur lorsqu'il suspect des erreurs |
| 4 | 100 | Corrector | Le correcteur est habilité à proposer une solution lorsqu'une erreur est avérée |
| 8 | 1000 | Moderator | Le modérateur dispose des droits en écriture sur le serveur pour appliquer les corrections |
| 16 | 10000 | Admin | L'admin réalise la maintenance du système |
| 32 | 100000 | Root | System admin |
| 64 | 1000000 | Intel | Le membre dispose des privileges pour acceder aux ressources de l'équipe Intel |
| 128 | 10000000 | Pilote | Le membre dispose des privileges pour acceder aux ressources de l'équipe Pilot |
| 256 | 100000000 | RH |Le membre dispose des privileges pour acceder aux ressources de l'équipe RH |
| 512 | 1000000000 | Formator | Le membre dispose des privileges pour acceder aux ressources de l'équipe Formateur |
| 1024 | 10000000000 | Architecte | Le membre dispose des privileges pour acceder aux ressources de l'équipe Architecte |
| 2048 | 100000000000 | Developer | Le membre dispose des privileges pour acceder aux ressources de l'équipe Developeur |
| 4096 | 1000000000000 | Pentest | Le membre dispose des privileges pour acceder aux ressources de l'équipe Pentest |
+----+--------+-------------+----------------------------------------------------------------------------------------------+
Script sql:
insert into rank value(0,0x0,'Anonymous','Un invite est un visiteur non inscrit');
insert into rank value(1,0x1,'User','Le membre est une personne ou un bot inscrit');
insert into rank value(2,0x2,'Notificator','Le notificateur prévient le correcteur lorsqu\'il suspect des erreurs');
insert into rank value(4,0x4,'Corector','Le correcteur est habilité à proposer une solution lorsqu\'une erreur est avérée');
insert into rank value(8,0x8,'Moderator','Le modérateur dispose des droits en écriture sur le serveur pour appliquer les corrections');
insert into rank value(16,0x10,'Admin','L\'admin réalise la maintenance du système ');
insert into rank value(32,0x20,'Root','System admin');
insert into rank value(64,0x40,'Intel','Le membre dispose des privileges pour acceder aux ressources de l\'équipe Intel');
insert into rank value(128,0x80,'Pilote','Le membre dispose des privileges pour acceder aux ressources de l\'équipe Pilot');
insert into rank value(256,0x100,'RH','Le membre dispose des privileges pour acceder aux ressources de l\'équipe RH');
insert into rank value(512,0x200,'Formateur','Le membre dispose des privileges pour acceder aux ressources de l\'équipe Formateur');
insert into rank value(1024,0x400,'Architecte','Le membre dispose des privileges pour acceder aux ressources de l\'équipe Architecte');
insert into rank value(2048,0x800,'Developeur','Le membre dispose des privileges pour acceder aux ressources de l\'équipe Developeur');
insert into rank value(4096,0x1000,'Pentest','Le membre dispose des privileges pour acceder aux ressources de l\'équipe Pentest');