| Input: the information of the access initiator, such as the organization org, the node peer, and the user ID |
| Output: the access log file of the subject and the operation record of the chain code |
(1) | logger.Info (Sprintf (”get args: %s,” args)); //Get the information of the access initiator |
(2) | /read org/ |
(3) | if err ! = nil then |
(4) | logger.Error (fmt.Sprintf (”get deptAttrVal err: %s,” err.Error ())) |
(5) | end |
(6) | else |
(7) | if deptAttrVal = = df then |
(8) | logger.Info (fmt.Sprintf (”get deptAttrVal: %s,” dv)); |
(9) | end |
(10) | else |
(11) | logger.Debug (fmt.Sprintf (”not found deptAttr”)); |
(12) | end |
(13) | end |
(14) | /read peer/ |
(15) | if err ! = nil then |
(16) | logger.Error (fmt.Sprintf (”get orgAttrVal err:%s,” err.Error ())); |
(17) | end |
(18) | else |
(19) | if orgAttrVal = = of then |
(20) | logger.Info (fmt.Sprintf (”got orgAttrVal: %s,” ov)); |
(21) | end |
(22) | else |
(23) | logger.Debug (fmt.Sprintf (”not found orgAttr”)); |
(24) | end |
(25) | end |
(26) | pv, pf, err \coloneq sinfo.GetAttributeValue (”peer”); |
(27) | /read user/ |
(28) | if err ! = nil then |
(29) | logger.Error (fmt.Sprintf (”get peerAttrVal err: %s,” err.Error ())); |
(30) | end |
(31) | else |
(32) | if peerAttrVal = = pf then |
(33) | logger.Info (fmt.Sprintf (”got peerAttrVal: %s,” pv)); |
(34) | end |
(35) | else |
(36) | logger.Debug (fmt.Sprintf (”not found peerAttr”)); |
(37) | end |
(38) | end |
(39) | if err! = nil then |
(40) | logger.Error(fmt.Sprintf (”get userAttrVal err: %s,” err.Error ())); |
(41) | end |
(42) | else |
(43) | if userAttrVal = = uf then |
(44) | logger.Info (fmt.Sprintf (”got userAttrVal: %s,” uv)); |
(45) | end |
(46) | else |
(47) | logger.Debug (fmt.Sprintf (”not found userAttr”)); |
(48) | end |
(49) | end |
(50) | return shim.Success ( [] byte (”log”)); |