如何在运行时授予用户权限?

How can I give a user permissions at Runtime?

我正在用 Hyperledger Composer 编写一个数据管理系统。我知道 .acl- 和 .cto-files,但我不知道如何通过事务添加(和保存)权限(=在运行时)。

示例用例:

  1. 患者允许特定医生查看他的数据。权限保存,Physician可以查看Patient的数据
  2. 患者撤回他的许可。医师无法再查看数据。

可以为每个医生保存所有患者权限的列表,并使其成为仅限患者的事务以将他们的名字添加到列表中,但是建模语言不允许列表,只允许数组.

有人有想法吗? :)

建议查看 Composer 示例网络中的代码示例 - 这个 PII(个人身份信息)网络与您要实现的目标有相似之处(通过(在本例中)的标识符控制对患者记录的访问) 医师) https://github.com/hyperledger/composer-sample-networks/blob/master/packages/pii-network/lib/logic.js

您的 ACL 显然可以被写入以控制对患者记录的访问(即 he/she 已同意)并且仅允许匹配的医师标识符访问,基于 ACL 中的条件检查 - 一个示例可以在此处的 Stack Overflow 中找到类似内容的使用 ->

我会说最好为每位患者配备一组授权医生(即,与医生可能每次检查大量患者 ID 的相反情况相比要少很多)。您的数组大小在理论上是 javascript 约束(堆大小等),但请参阅此处的讨论 -> Maximum size of an Array in Javascript