diff --git a/permission/types/permissions.go b/permission/types/permissions.go index 1063d3a8ce088ee4ca67662d0c252c3850544303..94f31e31888311f1bc21a2b3d9771b8b191d071d 100644 --- a/permission/types/permissions.go +++ b/permission/types/permissions.go @@ -16,6 +16,7 @@ package types import ( "fmt" + "strings" "github.com/eris-ltd/eris-db/word256" ) @@ -237,35 +238,37 @@ func PermFlagToString(pf PermFlag) (perm string) { return } +// PermStringToFlag maps camel- and snake case strings to the +// the corresponding permission flag. func PermStringToFlag(perm string) (pf PermFlag, err error) { - switch perm { + switch strings.ToLower(perm) { case "root": pf = Root case "send": pf = Send case "call": pf = Call - case "create_contract": + case "createcontract", "create_contract": pf = CreateContract - case "create_account": + case "createaccount", "create_account": pf = CreateAccount case "bond": pf = Bond case "name": pf = Name - case "hasBase": + case "hasbase", "has_base": pf = HasBase - case "setBase": + case "setbase", "set_base": pf = SetBase - case "unsetBase": + case "unsetbase", "unset_base": pf = UnsetBase - case "setGlobal": + case "setglobal", "set_global": pf = SetGlobal - case "hasRole": + case "hasrole", "has_role": pf = HasRole - case "addRole": + case "addrole", "add_role": pf = AddRole - case "removeRole": + case "removerole", "rmrole", "rm_role": pf = RmRole default: err = fmt.Errorf("Unknown permission %s", perm)