acl - 如何在运行时授予用户权限?
问题描述
我正在使用 Hyperledger Composer 编写数据管理系统。我知道 .acl 和 .cto 文件,但我不知道如何通过事务(=在运行时)添加(和保存)权限。
示例用例:
- 患者允许特定医师查看他的数据。权限被保存,医生可以查看患者的数据。
- 患者撤回他的许可。医师无法再查看数据。
可以保存每个医生的所有患者权限列表,并将其姓名添加到列表中,使其成为仅限患者的事务,但建模语言不允许列表,仅允许数组。
有人有想法吗?:)
解决方案
建议查看 Composer 示例网络以获取代码示例 - 此 PII(个人身份信息)网络与您尝试实现的目标相似(通过(在本例中)医师的标识符控制对患者记录的访问)https ://github.com/hyperledger/composer-sample-networks/blob/master/packages/pii-network/lib/logic.js。
您的 ACL 显然可以被写入来控制对患者记录的访问(即他/她已同意),并且仅允许匹配的医师标识符访问,基于 ACL 中的条件检查 - 可以找到使用类似内容的示例在此处的堆栈溢出中-> Hyperledger-Composer: 条件类型为 (r.someArray.indexOf(p.getIdentifier()) > -1) 的 ACL 规则不起作用
我会说每位患者拥有一系列授权医师会更好(即比医生每次可能需要检查大量患者 ID 的情况要少得多)。您的数组大小在理论上是一个 javascript 约束(堆大小等),但请参见此处的讨论-> JavaScript 中数组的最大大小
推荐阅读
- java - 在 Java 中读写整数的有效方法
- php - 创建文件和修改日期的多维数组
- swift - 当它在 {} 而不是 [] 中时,我如何从 api 中获取东西
- xslt - 在 XSLT 中,是否可以在具有 ID 的子代之前插入一个元素?
- c++ - 类 Python || 和 && 用于 C++ 中的 if
- java - 如何从文件中获取数据并替换数独游戏中的预定义数组
- javascript - 使用 Function.prototype.apply 时如何键入函数调用
- c# - AllureConfig 输出目录路径 NUnit3
- android - Android 无法打开与 SignlaR 的连接 - IIS
- wpf - 有没有办法绑定到模板化控件的属性?