Хорошо, вот суть того, что я планирую сделать.
У меня будет два стола. Один с «рангами» или «ролями» и один с пользователями. Я хочу назначать разрешения на основе роли/пользователя и отзывать разрешения на основе пользователя.
Итак, просто для общих целей допустим, что у нас есть $role_can $user_can и $user_cant
Я знаю, что для указания каких целей мы можем использовать побитовое ИЛИ. $permissions = ($role_can | $user_can), и это объединит их.
Теперь я хочу иметь возможность отозвать определенные разрешения после этого. ОБЫЧНО это делается с помощью побитового XOR, но я хочу сделать его защищенным от идиотов. Другими словами, я не хочу случайно предоставить им доступ к разрешению, исключив разрешение, которым они еще не владеют.
Как лучше всего это сделать?
Традиционно (($role_can | $user_can) ^ $user_cant) - но это не сработает для защиты от идиотов.
Я все еще новичок в битовых операциях, так что полегче со мной, если ответ очевиден.
Я использую PHP, но приемлемый ответ может быть на любом языке/псевдокоде, если он работает и его легко понять.
Спасибо.