Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
chaincode
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
刘星星@五瓣科技
chaincode
Commits
02170213
Commit
02170213
authored
Mar 01, 2020
by
刘星星@五瓣科技
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add comman table data,become schema
parent
dbf63aa3
Changes
3
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
169 additions
and
63 deletions
+169
-63
workspace.xml
.idea/workspace.xml
+99
-52
gongxianghui.go
src/github.com/gongxianghui_auth/gongxianghui.go
+40
-9
gongxianghui_test.go
src/github.com/gongxianghui_auth/gongxianghui_test.go
+30
-2
No files found.
.idea/workspace.xml
View file @
02170213
This diff is collapsed.
Click to expand it.
src/github.com/gongxianghui_auth/gongxianghui.go
View file @
02170213
...
...
@@ -343,11 +343,11 @@ func (this *Schema) put(args []string, stub shim.ChaincodeStubInterface) (string
if
len
(
args
)
!=
2
{
return
""
,
fmt
.
Errorf
(
"Expected 2 parameters to function put!"
)
}
var
schema
Schema
if
err
:=
json
.
Unmarshal
([]
byte
(
args
[
1
]),
&
schema
);
err
!=
nil
{
var
schema
*
Schema
var
err
error
if
schema
,
err
=
NewSchema
(
args
[
1
]);
err
!=
nil
{
return
""
,
fmt
.
Errorf
(
"parameters Unmarshal fail,args string not json string,err: %s"
,
err
)
}
else
{
}
else
{
if
backupValue
,
ok
:=
schema
.
Fields
[
"backup"
];
ok
{
if
_
,
ok
:=
backupValue
.
Value
.
(
map
[
string
]
interface
{});
!
ok
{
return
""
,
fmt
.
Errorf
(
"parameters Unmarshal fail,extra string not json string,err: %s"
,
err
)
...
...
@@ -359,6 +359,12 @@ func (this *Schema) put(args []string, stub shim.ChaincodeStubInterface) (string
//}
}
}
//if err := json.Unmarshal([]byte(args[1]), &schema); err != nil {
// return "", fmt.Errorf("parameters Unmarshal fail,args string not json string,err: %s", err)
//} else {
//
//}
_
,
ok
:=
schema
.
Fields
[
"id"
]
if
!
ok
{
return
""
,
fmt
.
Errorf
(
"The id field must exist "
)
...
...
@@ -382,12 +388,12 @@ func (this *Schema) update(args []string, stub shim.ChaincodeStubInterface) (str
if
len
(
args
)
!=
2
{
return
""
,
fmt
.
Errorf
(
"expected 2 parameters to function put! "
)
}
var
schema
Schema
if
err
:=
json
.
Unmarshal
([]
byte
(
args
[
1
]),
&
schema
);
err
!=
nil
{
var
schema
*
Schema
var
err
error
if
schema
,
err
=
NewSchema
(
args
[
1
]);
err
!=
nil
{
return
""
,
fmt
.
Errorf
(
"parameters Unmarshal fail,args string not json string,err: %s"
,
err
)
}
else
{
if
backupValue
,
ok
:=
schema
.
Fields
[
"backup"
];
ok
{
//保证backup 对应的参数格式为map[string]interface{}
}
else
{
if
backupValue
,
ok
:=
schema
.
Fields
[
"backup"
];
ok
{
if
_
,
ok
:=
backupValue
.
Value
.
(
map
[
string
]
interface
{});
!
ok
{
return
""
,
fmt
.
Errorf
(
"parameters Unmarshal fail,extra string not json string,err: %s"
,
err
)
}
...
...
@@ -446,6 +452,7 @@ func (this *Schema) getSchema(args string, stub shim.ChaincodeStubInterface)(str
}
func
getCertificateCommonName
(
stub
shim
.
ChaincodeStubInterface
)
(
string
,
error
)
{
return
"admin"
,
nil
creatorByte
,
_
:=
stub
.
GetCreator
()
certStart
:=
bytes
.
IndexAny
(
creatorByte
,
"-----BEGIN"
)
if
certStart
==
-
1
{
...
...
@@ -549,6 +556,30 @@ func authorityCheck(authority AuthGroup, commonName string) (bool,error) {
}
func
NewSchema
(
arg
string
)(
*
Schema
,
error
){
schema
:=
&
Schema
{
Fields
:
make
(
map
[
string
]
SchemaParameters
),
}
var
argMap
map
[
string
]
interface
{}
if
err
:=
json
.
Unmarshal
([]
byte
(
arg
),
&
argMap
);
err
!=
nil
{
return
nil
,
err
}
if
argMap
[
"fields"
]
!=
nil
&&
argMap
[
"schema_auth"
]
!=
nil
&&
argMap
[
"auth"
]
!=
nil
{
if
err
:=
json
.
Unmarshal
([]
byte
(
arg
),
schema
);
err
!=
nil
{
return
nil
,
err
}
return
schema
,
nil
}
for
k
,
v
:=
range
argMap
{
schema
.
Fields
[
k
]
=
SchemaParameters
{
Value
:
v
,
PAuth
:
Auth
{},
}
}
return
schema
,
nil
}
func
main
()
{
err
:=
shim
.
Start
(
&
GXHCC
{})
if
err
!=
nil
{
...
...
src/github.com/gongxianghui_auth/gongxianghui_test.go
View file @
02170213
...
...
@@ -13,7 +13,7 @@ var schema = `{"fields":{"alinkman":{"val":"Alinkman","auth":{"read":{"users":{"
{"admin":1582972202}}}},"atype":{"val":"Atype","auth":{"read":{"users":{"admin":0},"roles":{"admin":1582972202}},"write":{"users":{"admin":0},"roles":
{"admin":1582972202}}}},"backup":{"val":{"aname":"Aname","atype":"Atype"},"auth":{"read":{"users":{"admin":0},"roles":{"admin":1582972202}},"write":{"users":
{"admin":0},"roles":{"admin":1582972202}}}},"id":{"val":"1","auth":{"read":{"users":{"admin":0},"roles":{"admin":1582972202}},"write":{"users":{"admin":0},"roles":
{"admin":1582972202}}}}},"schema_auth":{"read":{"users":null,"roles":null},"write":{"users":{"admin":0},"roles":{"admin":
1582972202
}}},"auth":{"read":{"users":
{"admin":1582972202}}}}},"schema_auth":{"read":{"users":null,"roles":null},"write":{"users":{"admin":0},"roles":{"admin":
0
}}},"auth":{"read":{"users":
{"admin":0},"roles":{"admin":0}},"write":{"users":{"admin":0},"roles":{"admin":1582972202}}}}
`
var
schema2
=
`{"fields":{"alinkman":{"val":"Alinkman","auth":{"read":{"users":{"admin":0},"roles":{"admin":1582972202}},"write":{"users":{"admin":0},"roles":
...
...
@@ -74,7 +74,35 @@ func TestGXHSchemaAuth(t *testing.T){
responseByupdate
.
Status
,
responseByupdate
.
Message
,
string
(
responseByupdate
.
Payload
))
}
/*
测试使用table 数据构建 schema
*/
func
TestGXHSchemaAuthBytable
(
t
*
testing
.
T
){
cc
:=
new
(
GXHCC
)
stub
:=
shim
.
NewMockStub
(
"GXHCC"
,
cc
)
stub
.
MockInit
(
"init"
,
nil
)
fmt
.
Println
()
fmt
.
Println
(
"========================================invoke schema put============================================"
)
fmt
.
Println
()
fmt
.
Println
()
responseByPutschema
:=
stub
.
MockInvoke
(
"invoke1"
,[][]
byte
{[]
byte
(
"schema"
),
[]
byte
(
"put"
),[]
byte
(
"alibusi"
),[]
byte
(
inputUpdate
)})
fmt
.
Printf
(
"Invoke status %d,message %s and payload %s
\n
"
,
responseByPutschema
.
Status
,
responseByPutschema
.
Message
,
string
(
responseByPutschema
.
Payload
))
fmt
.
Println
()
fmt
.
Println
(
"========================================invoke schema get============================================"
)
fmt
.
Println
()
fmt
.
Println
()
responseByget
:=
stub
.
MockInvoke
(
"invoke1"
,[][]
byte
{[]
byte
(
"schema"
),
[]
byte
(
"get"
),[]
byte
(
"alibusi"
)})
fmt
.
Printf
(
"Invoke status %d,message %s ,and payload %s
\n
"
,
responseByget
.
Status
,
responseByget
.
Message
,
string
(
responseByget
.
Payload
))
fmt
.
Println
()
fmt
.
Println
(
"========================================invoke schema update============================================"
)
fmt
.
Println
()
fmt
.
Println
()
responseByupdate
:=
stub
.
MockInvoke
(
"invoke1"
,[][]
byte
{[]
byte
(
"schema"
),
[]
byte
(
"update"
),[]
byte
(
"alibusi"
),[]
byte
(
inputUpdate
)})
fmt
.
Printf
(
"Invoke status %d,message %s ,and payload %s
\n
"
,
responseByupdate
.
Status
,
responseByupdate
.
Message
,
string
(
responseByupdate
.
Payload
))
}
func
TestGXHDataPutAuth
(
t
*
testing
.
T
){
cc
:=
new
(
GXHCC
)
stub
:=
shim
.
NewMockStub
(
"GXHCC"
,
cc
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment