Как заставить работать такое правило:
rule adminCanViewAllExams {
condition (integerOneAndOnly(my.company.attributes.subject.rights) & 0x00000040) == 0
permit
}
Подсветка синтаксиса жалуется, что не знает этих элементов:
- & (это бинарная математическая операция)
- 0x00000040 (это шестнадцатеричное представление целого числа)
РЕДАКТИРОВАТЬ
(добавление комментария OP внутри вопроса)
Я хочу сохранить как можно больше в моем текущем приложении. Это означает, что я не хочу сильно менять свою модель базы данных. Я просто хочу реализовать новую часть PEP и PDP. Итак, в настоящее время права пользователя хранятся в файле Long. Каждый бит в числе представляет право. Чтобы получить право, мы выполняем бинарную &-операцию, которая маскирует другие биты в Long. Мы могли бы изменить дизайн этой части, но все равно полезно знать, как далеко зашла поддержка математических операций.