X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=ceph%2Fsrc%2Frgw%2Frgw_iam_policy.cc;h=31936c40472f2d3b4f06f6182b7be8dc6b33c642;hb=f6b5b4d738b87d88d2de35127b6b0e41eae2a272;hp=da0fa92b7010e725b08f29db7faac10db302e19d;hpb=12732ca2e80d168d344a265acffc1fbd1fa1f1b5;p=ceph.git diff --git a/ceph/src/rgw/rgw_iam_policy.cc b/ceph/src/rgw/rgw_iam_policy.cc index da0fa92b7..31936c404 100644 --- a/ceph/src/rgw/rgw_iam_policy.cc +++ b/ceph/src/rgw/rgw_iam_policy.cc @@ -970,12 +970,9 @@ ostream& operator <<(ostream& m, const Condition& c) { Effect Statement::eval(const Environment& e, boost::optional ida, uint64_t act, const ARN& res) const { - if (ida) { - if (!princ.empty() && !ida->is_identity(princ)) { - return Effect::Pass; - } else if (!noprinc.empty() && ida->is_identity(noprinc)) { - return Effect::Pass; - } + + if (eval_principal(e, ida) == Effect::Deny) { + return Effect::Pass; } if (!resource.empty()) {