Как я могу дать пользователю разрешения во время выполнения? - PullRequest
0 голосов
/ 07 января 2019

Я пишу систему управления данными с помощью Hyperledger Composer. Я знаю об .acl- и .cto-файлах, но я не представляю, как мне поступить добавление (и сохранение) разрешений с помощью транзакций (= во время выполнения).

Пример использования:

  1. Пациент позволяет определенному врачу просматривать свои данные. Разрешение сохранено, и врач может просматривать данные пациента.
  2. Пациент отзывает свое разрешение. Врач больше не может смотреть на данные.

Можно сохранить список всех разрешений для пациентов для каждого врача и сделать транзакцию только для пациента, чтобы добавить их имя в список, но Язык моделирования не допускает списки, только массивы.

У кого-нибудь есть идея? :)

1 Ответ

0 голосов
/ 09 января 2019

предлагают проверить образцы сетей Composer для примеров кода - эта сеть PII (Личная информация) имеет сходство с тем, чего вы пытаетесь достичь (управление доступом к записи пациента с помощью идентификатора (в данном случае) Врач) https://github.com/hyperledger/composer-sample-networks/blob/master/packages/pii-network/lib/logic.js.

Ваши ACL, очевидно, могут быть записаны для контроля доступа к записи о пациентах (т. Е. Он / она дали согласие) и разрешить доступ только к соответствующему идентификатору врача, основываясь на проверке состояния в ACL - примере использования чего-то подобного это переполнение стека можно найти здесь -> Hyperledger-Composer: ACL-правила с условием типа (r.someArray.indexOf (p.getIdentifier ())> -1) не работают

Я бы сказал, что лучше иметь массив авторизованных врачей на пациента (т. Е. Намного меньше, чем обратное, где у врача может быть много идентификаторов пациентов для проверки каждый раз). Размер вашего массива является теоретически ограничением javascript (размер кучи и т. Д.), Но см. Обсуждение здесь -> Максимальный размер массива в Javascript

...