1 // -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
2 // vim: ts=8 sw=2 smarttab ft=cpp
6 class RGWRestUserPolicy
: public RGWRESTOp
{
8 static constexpr int MAX_POLICY_NAME_LEN
= 128;
13 bool validate_input();
16 int verify_permission() override
;
17 virtual uint64_t get_op() = 0;
18 void send_response() override
;
19 void dump(Formatter
*f
) const;
22 class RGWUserPolicyRead
: public RGWRestUserPolicy
{
24 RGWUserPolicyRead() = default;
25 int check_caps(const RGWUserCaps
& caps
) override
;
28 class RGWUserPolicyWrite
: public RGWRestUserPolicy
{
30 RGWUserPolicyWrite() = default;
31 int check_caps(const RGWUserCaps
& caps
) override
;
34 class RGWPutUserPolicy
: public RGWUserPolicyWrite
{
36 RGWPutUserPolicy() = default;
37 void execute() override
;
39 const char* name() const override
{ return "put_user-policy"; }
40 uint64_t get_op() override
;
41 RGWOpType
get_type() override
{ return RGW_OP_PUT_USER_POLICY
; }
44 class RGWGetUserPolicy
: public RGWUserPolicyRead
{
46 RGWGetUserPolicy() = default;
47 void execute() override
;
49 const char* name() const override
{ return "get_user_policy"; }
50 uint64_t get_op() override
;
51 RGWOpType
get_type() override
{ return RGW_OP_GET_USER_POLICY
; }
54 class RGWListUserPolicies
: public RGWUserPolicyRead
{
56 RGWListUserPolicies() = default;
57 void execute() override
;
59 const char* name() const override
{ return "list_user_policies"; }
60 uint64_t get_op() override
;
61 RGWOpType
get_type() override
{ return RGW_OP_LIST_USER_POLICIES
; }
64 class RGWDeleteUserPolicy
: public RGWUserPolicyWrite
{
66 RGWDeleteUserPolicy() = default;
67 void execute() override
;
69 const char* name() const override
{ return "delete_user_policy"; }
70 uint64_t get_op() override
;
71 RGWOpType
get_type() override
{ return RGW_OP_DELETE_USER_POLICY
; }