From ff2d204e17fdb0a38b37bbd8f94153979513957b Mon Sep 17 00:00:00 2001 From: Radoslaw Zarzynski Date: Tue, 19 Apr 2016 19:50:41 +0200 Subject: [PATCH] rgw: implement to_str() over auth appliers. Signed-off-by: Radoslaw Zarzynski --- src/rgw/rgw_auth.cc | 35 +++++++++++++++++++++++++++++++++++ src/rgw/rgw_auth.h | 10 +++++++--- src/rgw/rgw_auth_decoimpl.h | 16 ++++++++++++++++ 3 files changed, 58 insertions(+), 3 deletions(-) diff --git a/src/rgw/rgw_auth.cc b/src/rgw/rgw_auth.cc index 793e998186fbe..d5d37ffb4e15d 100644 --- a/src/rgw/rgw_auth.cc +++ b/src/rgw/rgw_auth.cc @@ -53,6 +53,16 @@ rgw_auth_transform_old_authinfo(req_state * const s) int get_perm_mask() const { return perm_mask; } + + std::string to_str() const { + std::stringstream ss; + + ss << "RGWDummyIdentityApplier(auth_id=" << id + << ", perm_mask=" << perm_mask + << ", is_admin=" << is_admin << ")"; + + return ss.str(); + } }; return std::unique_ptr( @@ -127,6 +137,18 @@ bool RGWRemoteAuthApplier::is_owner_of(const rgw_user& uid) const return info.acct_user == uid; } +std::string RGWRemoteAuthApplier::to_str() const +{ + std::stringstream ss; + + ss << "RGWRemoteAuthApplier(acct_user=" << info.acct_user + << ", acct_name=" << info.acct_name + << ", perm_mask=" << info.perm_mask + << ", is_admin=" << info.is_admin << ")"; + + return ss.str(); +} + void RGWRemoteAuthApplier::create_account(const rgw_user acct_user, RGWUserInfo& user_info) const /* out */ { @@ -206,6 +228,19 @@ bool RGWLocalAuthApplier::is_owner_of(const rgw_user& uid) const return uid == user_info.user_id; } +std::string RGWLocalAuthApplier::to_str() const +{ + std::stringstream ss; + + ss << "RGWLocalAuthApplier(acct_user=" << user_info.user_id + << ", acct_name=" << user_info.display_name + << ", subuser=" << subuser + << ", perm_mask=" << get_perm_mask() + << ", is_admin=" << user_info.admin << ")"; + + return ss.str(); +} + uint32_t RGWLocalAuthApplier::get_perm_mask(const std::string& subuser_name, const RGWUserInfo &uinfo) const { diff --git a/src/rgw/rgw_auth.h b/src/rgw/rgw_auth.h index 60765d471f60f..f4f7ae6d5d999 100644 --- a/src/rgw/rgw_auth.h +++ b/src/rgw/rgw_auth.h @@ -49,11 +49,13 @@ public: * the anonymous identity. */ return is_owner_of(rgw_user(RGW_USER_ANON_ID)); } + + virtual std::string to_str() const = 0; }; -inline ostream& operator<<(ostream& out, const RGWIdentityApplier &id) { -// return out << id.to_str(); - return out; +inline std::ostream& operator<<(std::ostream& out, + const RGWIdentityApplier &id) { + return out << id.to_str(); } std::unique_ptr @@ -157,6 +159,7 @@ public: virtual bool is_admin_of(const rgw_user& uid) const override; virtual bool is_owner_of(const rgw_user& uid) const override; virtual int get_perm_mask() const { return info.perm_mask; } + virtual std::string to_str() const override; virtual void load_acct_info(RGWUserInfo& user_info) const override; /* out */ struct Factory { @@ -201,6 +204,7 @@ public: virtual int get_perm_mask() const override { return get_perm_mask(subuser, user_info); } + virtual std::string to_str() const override; virtual void load_acct_info(RGWUserInfo& user_info) const override; /* out */ struct Factory { diff --git a/src/rgw/rgw_auth_decoimpl.h b/src/rgw/rgw_auth_decoimpl.h index fa734b12f2c40..07081746cc4e5 100644 --- a/src/rgw/rgw_auth_decoimpl.h +++ b/src/rgw/rgw_auth_decoimpl.h @@ -37,6 +37,10 @@ public: return decoratee.get_perm_mask(); } + virtual std::string to_str() const override { + return decoratee.to_str(); + } + virtual void load_acct_info(RGWUserInfo& user_info) const override { /* out */ return decoratee.load_acct_info(user_info); } @@ -75,6 +79,10 @@ public: return decoratee->get_perm_mask(); } + virtual std::string to_str() const override { + return decoratee->to_str(); + } + virtual void load_acct_info(RGWUserInfo& user_info) const override { /* out */ return decoratee->load_acct_info(user_info); } @@ -102,6 +110,7 @@ public: acct_user_override(acct_user_override) { } + virtual std::string to_str() const override; virtual void load_acct_info(RGWUserInfo& user_info) const override; /* out */ }; @@ -109,6 +118,13 @@ public: template const rgw_user RGWThirdPartyAccountAuthApplier::UNKNOWN_ACCT; +template +std::string RGWThirdPartyAccountAuthApplier::to_str() const +{ + return "RGWThirdPartyAccountAuthApplier(" + acct_user_override.to_str() + ")" + " -> " + RGWDecoratingAuthApplier::to_str(); +} + template void RGWThirdPartyAccountAuthApplier::load_acct_info(RGWUserInfo& user_info) const { -- 2.39.5