У меня вопрос по контролю доступа.
В частности, вопрос касается взаимосвязи между правилами управления доступом, определенными для участников или активов, с одной стороны, и правилами управления активами, определенными для транзакций, осуществляющих доступ к этим участникам / активам.
Вот пример:
Предположим, что сеть Hyperledger Fabric используется для создания какой-то социальной сети для сотрудников компании.
Следующее правило гласит, что у сотрудника есть доступ на запись к своим данным:
rule EmployeesHaveWriteAccessToTheirOwnData {
description: "Allow employees write access to their own data"
participant(p): "org.company.biznet.Employee"
operation: UPDATE
resource(r): "org.company.biznet.Employee"
condition: (p.getIdentifier() == r.getIdentifier())
action: ALLOW
}
Предположим, что доступ для записи осуществляется посредством транзакции «UpdateTransaction». Далее предположим, что (возможно, случайно) значение действия правила управления доступом транзакции UpdateTransaction установлено на «Denied».
rule EmployeeCanSubmitTransactionsToUpdateData {
description: "Allow employees to update their data"
participant: "org.company.biznet.Employee"
operation: CREATE
resource: "org.company.biznet.UpdateTransaction"
action: Denied
}
Теперь сложилась такая ситуация:
Каждому сотруднику (согласно правилу 1) предоставляется право изменять свои данные. При этом сотрудникам не разрешается отправлять транзакцию «UpdateTransaction» для изменения данных (см. Правило 2).
Теперь сотрудники не могут изменять свои данные? Или сотрудники по-прежнему могут изменять свои данные, не отправляя транзакцию «UpdateTransaction»?
Другими словами: есть ли способ для участников получить доступ к данным (для которых у них есть права доступа) без использования каких-либо транзакций, определенных в .cto-файле?