1 // -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
2 // vim: ts=8 sw=2 smarttab ft=cpp
8 class RGWRestRole
: public RGWRESTOp
{
16 string max_session_duration
;
19 int verify_permission() override
;
20 void send_response() override
;
21 virtual uint64_t get_op() = 0;
24 class RGWRoleRead
: public RGWRestRole
{
26 RGWRoleRead() = default;
27 int check_caps(const RGWUserCaps
& caps
) override
;
30 class RGWRoleWrite
: public RGWRestRole
{
32 RGWRoleWrite() = default;
33 int check_caps(const RGWUserCaps
& caps
) override
;
36 class RGWCreateRole
: public RGWRoleWrite
{
38 RGWCreateRole() = default;
39 int verify_permission() override
;
40 void execute() override
;
42 const char* name() const override
{ return "create_role"; }
43 RGWOpType
get_type() override
{ return RGW_OP_CREATE_ROLE
; }
44 uint64_t get_op() { return rgw::IAM::iamCreateRole
; }
47 class RGWDeleteRole
: public RGWRoleWrite
{
49 RGWDeleteRole() = default;
50 void execute() override
;
52 const char* name() const override
{ return "delete_role"; }
53 RGWOpType
get_type() override
{ return RGW_OP_DELETE_ROLE
; }
54 uint64_t get_op() { return rgw::IAM::iamDeleteRole
; }
57 class RGWGetRole
: public RGWRoleRead
{
58 int _verify_permission(const RGWRole
& role
);
60 RGWGetRole() = default;
61 int verify_permission() override
;
62 void execute() override
;
64 const char* name() const override
{ return "get_role"; }
65 RGWOpType
get_type() override
{ return RGW_OP_GET_ROLE
; }
66 uint64_t get_op() { return rgw::IAM::iamGetRole
; }
69 class RGWModifyRole
: public RGWRoleWrite
{
71 RGWModifyRole() = default;
72 void execute() override
;
74 const char* name() const override
{ return "modify_role"; }
75 RGWOpType
get_type() override
{ return RGW_OP_MODIFY_ROLE
; }
76 uint64_t get_op() { return rgw::IAM::iamModifyRole
; }
79 class RGWListRoles
: public RGWRoleRead
{
81 RGWListRoles() = default;
82 int verify_permission() override
;
83 void execute() override
;
85 const char* name() const override
{ return "list_roles"; }
86 RGWOpType
get_type() override
{ return RGW_OP_LIST_ROLES
; }
87 uint64_t get_op() { return rgw::IAM::iamListRoles
; }
90 class RGWPutRolePolicy
: public RGWRoleWrite
{
92 RGWPutRolePolicy() = default;
93 void execute() override
;
95 const char* name() const override
{ return "put_role_policy"; }
96 RGWOpType
get_type() override
{ return RGW_OP_PUT_ROLE_POLICY
; }
97 uint64_t get_op() { return rgw::IAM::iamPutRolePolicy
; }
100 class RGWGetRolePolicy
: public RGWRoleRead
{
102 RGWGetRolePolicy() = default;
103 void execute() override
;
105 const char* name() const override
{ return "get_role_policy"; }
106 RGWOpType
get_type() override
{ return RGW_OP_GET_ROLE_POLICY
; }
107 uint64_t get_op() { return rgw::IAM::iamGetRolePolicy
; }
110 class RGWListRolePolicies
: public RGWRoleRead
{
112 RGWListRolePolicies() = default;
113 void execute() override
;
115 const char* name() const override
{ return "list_role_policies"; }
116 RGWOpType
get_type() override
{ return RGW_OP_LIST_ROLE_POLICIES
; }
117 uint64_t get_op() { return rgw::IAM::iamListRolePolicies
; }
120 class RGWDeleteRolePolicy
: public RGWRoleWrite
{
122 RGWDeleteRolePolicy() = default;
123 void execute() override
;
125 const char* name() const override
{ return "delete_role_policy"; }
126 RGWOpType
get_type() override
{ return RGW_OP_DELETE_ROLE_POLICY
; }
127 uint64_t get_op() { return rgw::IAM::iamDeleteRolePolicy
; }