我使用hyperledger composer建立了一个商业网络。我正在尝试设置权限,以便参与者只能查看他们提交的交易。
尝试通过对作曲家REST API的GET请求或使用客户端API访问事务(称为TradeInstrument)时,以admin身份调用。这是可以理解的,因为我允许管理员访问所有资源。但是,当我将请求作为参与者时,将返回一个空数组。为我想要实现的目标设置权限的正确方法是什么?
以下是我的模型和权限文件:
model.cto
psprt_auth_pkg.create_account(:P3_USERNAME, :P3_PASSWORD);
permissions.acl
namespace org.example.cashbalance
participant Portfolio identified by portfolioNumber {
o String portfolioNumber
o String portfolioName
}
transaction TradeInstrument {
--> Portfolio participant
o Double settlementAmountBase
}
答案 0 :(得分:0)
您正在谈论历史交易(已提交),因此您需要限制该注册表,例如。
public new void Hide()
{
Dispatcher.Invoke(() =>
{
base.Hide();
WindowState = WindowState.Minimized;
base.OnStateChanged(new EventArgs());
});
}
public new void Show()
{
Dispatcher.Invoke(() =>
{
base.Show();
base.Topmost = true;
WindowState = WindowState.Normal;
});
}
我不认为下面的规则会做任何事情(参与者调用是'HistorianRecord'的属性)
rule PortfolioParticipantSeesOwnHistoryOnly {
description: "See history of their own transactions only"
participant(t): "org.example.cashbalance.Portfolio"
operation: READ
resource(v): "org.hyperledger.composer.system.HistorianRecord"
condition: (v.participantInvoking.getIdentifier() != t.getIdentifier())
action: DENY
}