par
AoSiX » 20 avr. 2011, 10:34
Bonjour,
j'ai enfin trouvé ce que je cherchais !
Voilà un exemple au cas ou ça interesse ....
<?php
define ('CONSULER_ARTICLES', 0x01);
define ('ECRIRE_ARTICLE', 0x02);
define ('PUBLIER_ARTICLE', 0x04);
define('FAIRE_DES_CONNERIES',0x08);
// ajout de droits
$permissions= 0;
$permissions |= CONSULER_ARTICLES;
$permissions |= ECRIRE_ARTICLE;
$permissions |= FAIRE_DES_CONNERIES;
// on peut également écrire $permissions |= CONSULER_ARTICLES | ECRIRE_ARTICLE | FAIRE_DES_CONNERIES;
// retrait de droit ... on sait jamais si vous voulez lui retirer en cours de route :)
$permissions &= ~(ECRIRE_ARTICLE | FAIRE_DES_CONNERIES);
// on assemble les droits avec | , on les inverses avec ~ , puis ont les enleves du membre en gardant les autres avec &
// test de droits ; je rajoute intval car il arrive que permission soit de type string, notamment si il vient d'une BDD
if (intval($permission) & PUBLIER_ARTICLE)
{
echo 'Vous pouvez publier vos articles...';
exit;
}
?>
Pour ce qui est des valeurs des droits, ce sont des puissantes de deux. Le choix à été fait de les mettre en hexa plutôt qu'en décimal, simplement car la suite hexa est simple de retenir, ce sont toujours les mêmes chiffres auxquel on ajoute des 0 à la fin...
Code : Tout sélectionner
0x01
0x02
0x04
0x08
0x10
0x20
0x40
0x80
0x100
0x200
0x400
0x800
En décimal ça donne : 1, 2 , 4, 8, 16, 32, 64, 128, 256, 512 ....
Et comme dirait
Flanders, voili voilou les voisinous : )
Bonjour,
j'ai enfin trouvé ce que je cherchais !
Voilà un exemple au cas ou ça interesse ....
[php]
<?php
define ('CONSULER_ARTICLES', 0x01);
define ('ECRIRE_ARTICLE', 0x02);
define ('PUBLIER_ARTICLE', 0x04);
define('FAIRE_DES_CONNERIES',0x08);
// ajout de droits
$permissions= 0;
$permissions |= CONSULER_ARTICLES;
$permissions |= ECRIRE_ARTICLE;
$permissions |= FAIRE_DES_CONNERIES;
// on peut également écrire $permissions |= CONSULER_ARTICLES | ECRIRE_ARTICLE | FAIRE_DES_CONNERIES;
// retrait de droit ... on sait jamais si vous voulez lui retirer en cours de route :)
$permissions &= ~(ECRIRE_ARTICLE | FAIRE_DES_CONNERIES);
// on assemble les droits avec | , on les inverses avec ~ , puis ont les enleves du membre en gardant les autres avec &
// test de droits ; je rajoute intval car il arrive que permission soit de type string, notamment si il vient d'une BDD
if (intval($permission) & PUBLIER_ARTICLE)
{
echo 'Vous pouvez publier vos articles...';
exit;
}
?>
[/php]
Pour ce qui est des valeurs des droits, ce sont des puissantes de deux. Le choix à été fait de les mettre en hexa plutôt qu'en décimal, simplement car la suite hexa est simple de retenir, ce sont toujours les mêmes chiffres auxquel on ajoute des 0 à la fin...
[code]
0x01
0x02
0x04
0x08
0x10
0x20
0x40
0x80
0x100
0x200
0x400
0x800
[/code]
En décimal ça donne : 1, 2 , 4, 8, 16, 32, 64, 128, 256, 512 ....
Et comme dirait [url=http://en.wikipedia.org/wiki/Ned_Flanders]Flanders[/url], voili voilou les voisinous : )