Skip to content

Commit

Permalink
fix: bugfixes
Browse files Browse the repository at this point in the history
  • Loading branch information
Qiu Jian committed May 15, 2020
1 parent 54689d8 commit b312b5d
Showing 1 changed file with 5 additions and 5 deletions.
10 changes: 5 additions & 5 deletions pkg/cloudcommon/policy/policy.go
Original file line number Diff line number Diff line change
Expand Up @@ -93,14 +93,14 @@ type sPolicyData struct {
Policy jsonutils.JSONObject `json:"policy"`
}

func parseJsonPolicy(obj jsonutils.JSONObject) (rbacutils.SPolicyInfo, error) {
func parseJsonPolicy(obj jsonutils.JSONObject, enabled bool) (rbacutils.SPolicyInfo, error) {
sp := rbacutils.SPolicyInfo{}
pData := sPolicyData{}
err := obj.Unmarshal(&pData)
if err != nil {
return sp, errors.Wrap(err, "Unmarshal")
}
if !pData.Enabled {
if enabled && !pData.Enabled {
return sp, errors.Wrap(httperrors.ErrInvalidFormat, "not enabled")
}
if len(pData.Type) == 0 {
Expand Down Expand Up @@ -150,7 +150,7 @@ func remotePolicyFetcher(ctx context.Context) (map[rbacutils.TRbacScope][]rbacut
}

for i := 0; i < len(result.Data); i += 1 {
sp, err := parseJsonPolicy(result.Data[i])
sp, err := parseJsonPolicy(result.Data[i], true)
if err != nil {
log.Errorf("error parse policty %s", err)
continue
Expand Down Expand Up @@ -429,7 +429,7 @@ func fetchPolicyByIdOrName(ctx context.Context, id string) (rbacutils.SPolicyInf
if err != nil {
return rbacutils.SPolicyInfo{}, errors.Wrap(err, "modules.Policies.Get")
}
return parseJsonPolicy(data)
return parseJsonPolicy(data, false)
}

func explainPolicyInternal(ctx context.Context, userCred mcclient.TokenCredential, policyReq jsonutils.JSONObject, name string) (rbacutils.TRbacScope, []string, rbacutils.TRbacResult, error) {
Expand Down Expand Up @@ -481,7 +481,7 @@ func explainPolicyInternal(ctx context.Context, userCred mcclient.TokenCredentia
// policy not found locally, remote fetch
sp, err := fetchPolicyByIdOrName(ctx, name)
if err != nil {
return scope, reqStrs, rbacutils.Deny, httperrors.NewNotFoundError("policy %s not found", name)
return scope, reqStrs, rbacutils.Deny, httperrors.NewNotFoundError("policy %s not found: %s", name, err)
}
policy = sp.Policy
}
Expand Down

0 comments on commit b312b5d

Please sign in to comment.