В моем приложении hyperledger-composer правила контроля доступа с условием следующего типа:
(r.someArray.indexOf(p.getIdentifier()) > -1)
не работают.
Вот пример такого ACL-правила:
rule SuperiorsHaveReadAccessToTheirTeamMembers {
description: "Allow superiors read access to data on their team members"
participant(p): "org.comp.app.Employee"
operation: READ
resource(r): "org.comp.app.Employee"
condition: (r.superiors.indexOf(p.getIdentifier()) > -1)
action: ALLOW
}
для уточнения:
participant Employee extends User {
o String company optional
--> Employee[] superiors optional
}
Таким образом, вышеприведенное правило контроля доступа просто утверждает, что Сотрудник A имеет READ Доступ к Сотруднику B, если и только если атрибут «вышестоящие» атрибута массива Сотрудника B содержит Сотрудника A (т. Е. Если Сотрудник A является начальником Сотрудника B).
Однако это не работает. Сотрудник A не имеет доступа READ к Сотруднику B. Все остальные правила контроля доступа такого рода также не работают.
Это ошибка в hyperledger-composer?