diff --git a/cmd/iam.go b/cmd/iam.go index 5b887e234..6440490c1 100644 --- a/cmd/iam.go +++ b/cmd/iam.go @@ -458,7 +458,7 @@ func reloadEtcdUsers(prefix string, usersMap map[string]auth.Credentials, policy // prefix := "config/iam/users/" // v := trim(trim(key, prefix), base(key)) == "newuser" // - user := strings.TrimSuffix(strings.TrimSuffix(string(kv.Key), prefix), path.Base(string(kv.Key))) + user := path.Clean(strings.TrimSuffix(strings.TrimPrefix(string(kv.Key), prefix), path.Base(string(kv.Key)))) if !users.Contains(user) { users.Add(user) } @@ -497,7 +497,7 @@ func reloadEtcdUsers(prefix string, usersMap map[string]auth.Credentials, policy if err = json.Unmarshal(pdata, &policyName); err != nil { return err } - policyMap[path.Base(prefix)] = policyName + policyMap[user] = policyName } } return nil @@ -521,11 +521,11 @@ func reloadEtcdPolicies(prefix string, cannedPolicyMap map[string]iampolicy.Poli // then strip off the remaining basename to obtain the prefix // value, usually in the following form. // - // key := "config/iam/policys/newpolicy/identity.json" - // prefix := "config/iam/policys/" + // key := "config/iam/policies/newpolicy/identity.json" + // prefix := "config/iam/policies/" // v := trim(trim(key, prefix), base(key)) == "newpolicy" // - policyName := strings.TrimSuffix(strings.TrimSuffix(string(kv.Key), prefix), path.Base(string(kv.Key))) + policyName := path.Clean(strings.TrimSuffix(strings.TrimPrefix(string(kv.Key), prefix), path.Base(string(kv.Key)))) if !policies.Contains(policyName) { policies.Add(policyName) } @@ -542,7 +542,7 @@ func reloadEtcdPolicies(prefix string, cannedPolicyMap map[string]iampolicy.Poli if err = json.Unmarshal(pdata, &p); err != nil { return err } - cannedPolicyMap[path.Base(prefix)] = p + cannedPolicyMap[policyName] = p } return nil }