Что делать, если у вас много прав доступа к двоичной системе?
Я планирую использовать двоичную систему для обработки моих разрешений, например:
<?php
const POST = 1;
const DELETE = 2;
const UPDATE = 4;
const READ = 8;
const ADMIN = 16;
const ADD_PRODUCT = 32;
const DELETE_PRODUCT = 64;
const ADD_BLOG = 128;
$permission = decbin('5');
if ($permission & POST) { echo "POST <br />"; }
if ($permission & DELETE) { echo "DELETE <br />"; }
if ($permission & UPDATE) { echo "UPDATE <br />"; }
if ($permission & READ) { echo "READ <br />"; }
if ($permission & ADMIN) { echo "ADMIN <br />"; }
?>
С несколькими разрешениями это будет хорошо работать. Но что, если у меня, скажем, 40 различных разрешений? Затем мне нужно сложить несколько действительно больших чисел, что является занозой в заднице.
Есть ли какой-нибудь другой способ?
Любая информация или помощь будут значительно оценены!
3
1 answers
1) Используйте шестнадцатеричный код для определения констант - его гораздо проще вводить.
2) Разделите отдельные разрешения на разные роли пользователей.
Например,
const BLOG_POST = 0x01;
const BLOG_DELETE = 0x02;
const BLOG_UPDATE = 0x04;
const BLOG_READ = 0x08;
const BLOG_SUBSCRIBE = 0x10;
const ADMIN_IS_ADMIN = 0x01;
const ADMIN_ADD_PRODUCT = 0x02;
const ADMIN_DELETE_PRODUCT = 0x04;
const ADMIN_ADD_BLOG = 0x08;
Даже когда вы набираете большие числа, их все равно легко вводить
const ADMIN_SOME_PERMISSION = 0x1000;
const ADMIN_SOME_PERMISSION2 = 0x2000;
0
Author: Danack, 2012-07-24 14:32:21