-
Aide pour un algo
Bonjour,
Dans ma jeunesse j'ai appris à faire cela mais le manque de pratique fait que je ne m'en souviens plus.
Il s'agit pour une gestion de permissions.
chaque permission à un poids, voici la liste :
core.view 1
core.viewResizes 2
core.viewSource 4
core.viewAll 7
core.addAlbumItem 8
core.addDataItem 16
core.edit 32
core.changePermissions 64
core.delete 128
cart.add 256
Dans ma table j'ai juste l'identifiant du user avec par exemple 418.
Comment faire a partir de 418 pour retrouver mes permissions.
le 418 correspond au droit suivant :
- View resized
- Edit
- Delete
- Cart
Par avance merci de votre aide
Mic
-
Bonjour,
418 se décompose en :
View resized : 2
Edit : 32
Delete : 128
Cart : 256
1 bit par permission.
On crée une constante par permission (exemple : PermissionPoids_edit=32).
Si on note UserPermission
Pour tester une permission xxx : permission_XXX_Ok= (UserPermission and PermissionPoids_xxx)<>0
Pour activer : UserPermission = UserPermission or PermissionPoids_xxx
Pour désactiver : UserPermission = UserPermission and (not PermissionPoids_xxx)
-
vu comme ça, c'est beaucoup plus simple.
Merci de ton aide
Mic
-
Bonjour,
effectivement, une des solutions est de décomposer ton nombre entier en binaire. 418 = 110100010
Donc les 1 sont les permissions...