@@ -21,7 +21,6 @@ package auth
2121import (
2222 "bytes"
2323 "fmt"
24- "strings"
2524 "time"
2625
2726 "github.com/ontio/ontology/account"
@@ -191,13 +190,12 @@ func AssignFuncsToRole(native *native.NativeService) ([]byte, error) {
191190 if err != nil {
192191 return nil , fmt .Errorf ("[assignFuncsToRole] getRoleFunc failed: %v" , err )
193192 }
194- if funcs != nil {
195- funcNames := append (funcs .funcNames , param .FuncNames ... )
196- funcs .funcNames = stringSliceUniq (funcNames )
197- } else {
193+ if funcs == nil {
198194 funcs = new (roleFuncs )
199- funcs .funcNames = stringSliceUniq (param .FuncNames )
200195 }
196+
197+ funcs .AppendFuncs (param .FuncNames )
198+
201199 err = putRoleFunc (native , param .ContractAddr , param .Role , funcs )
202200 if err != nil {
203201 return nil , fmt .Errorf ("[assignFuncsToRole] putRoleFunc failed: %v" , err )
@@ -589,10 +587,8 @@ func verifyToken(native *native.NativeService, contractAddr common.Address, call
589587 if funcs == nil || token .expireTime < native .Time {
590588 continue
591589 }
592- for _ , f := range funcs .funcNames {
593- if strings .Compare (fn , f ) == 0 {
594- return true , nil
595- }
590+ if funcs .ContainsFunc (fn ) {
591+ return true , nil
596592 }
597593 }
598594 }
@@ -610,10 +606,8 @@ func verifyToken(native *native.NativeService, contractAddr common.Address, call
610606 if funcs == nil || s .expireTime < native .Time {
611607 continue
612608 }
613- for _ , f := range funcs .funcNames {
614- if strings .Compare (fn , f ) == 0 {
615- return true , nil
616- }
609+ if funcs .ContainsFunc (fn ) {
610+ return true , nil
617611 }
618612 }
619613 }
0 commit comments