访问控制合约
Last updated
Last updated
访问控制合约是在智能合约层面进行写操作访问控制的组件类智能合约,系统所有智能合约都通过继承获得其成员、属性和方法。
在角色库的基础上,访问控制合约又增设了直接管理人、注册中心和总管理人三个特殊角色,通过一系列修改器接口给合约层面控制特定写操作函数的访问权限提供身份校验和访问控制工具。
具体而言,登记簿合约会直接应用访问控制合约的修改器,要求特定几个分项管理人合约才能访问特定的写操作函数;而分项管理人合约的所有写操作函数都要求仅直接管理人才能访问,而它们的直接管理人都被配置为总管理人合约。通过这种控制方法,系统可严格限制系统内部写操作指令的路由走向,确保商业法律逻辑可被严格执行和实现。
_ATTORNEYS
律师角色组名称(bytes32)。
_dk
直接管理人账户地址。
_rc
注册中心合约接口。
_gk
总管理人合约接口。
onlyOwner
仅角色库定义的所有者才能访问。
onlyDK
仅直接管理人才能访问。
onlyGC
仅法务总监(即角色库定义的“律师角色组”管理员)才能访问。
onlyKeeper
仅管理人(直接管理人和总管理人合约中注册的分项管理人)才能访问。
onlyAttorney
仅角色库定义的“律师角色组”成员才能访问。
attorneyOrKeeper
仅律师或管理人才能访问。
getOwner
查询获取所有者的账户地址。
getDK
查询获取直接管理人的账户地址。
isFinalized
查询合约状态是否为已定稿。
getRoleAdmin
查询特定角色的管理员账户地址。
hasRole
查询特定地址账户是否拥有特定角色。