]> git.proxmox.com Git - ceph.git/blame - ceph/src/rgw/rgw_rest_role.h
import 15.2.0 Octopus source
[ceph.git] / ceph / src / rgw / rgw_rest_role.h
CommitLineData
31f18b77 1// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
9f95a23c 2// vim: ts=8 sw=2 smarttab ft=cpp
11fdf7f2 3
9f95a23c 4#pragma once
7c673cae 5
11fdf7f2
TL
6#include "rgw_role.h"
7
8class RGWRestRole : public RGWRESTOp {
7c673cae
FG
9protected:
10 string role_name;
11 string role_path;
12 string trust_policy;
13 string policy_name;
14 string perm_policy;
15 string path_prefix;
11fdf7f2
TL
16 string max_session_duration;
17 RGWRole _role;
7c673cae 18public:
11fdf7f2 19 int verify_permission() override;
7c673cae 20 void send_response() override;
11fdf7f2 21 virtual uint64_t get_op() = 0;
7c673cae
FG
22};
23
24class RGWRoleRead : public RGWRestRole {
25public:
26 RGWRoleRead() = default;
9f95a23c 27 int check_caps(const RGWUserCaps& caps) override;
7c673cae
FG
28};
29
30class RGWRoleWrite : public RGWRestRole {
31public:
32 RGWRoleWrite() = default;
9f95a23c 33 int check_caps(const RGWUserCaps& caps) override;
7c673cae
FG
34};
35
36class RGWCreateRole : public RGWRoleWrite {
37public:
38 RGWCreateRole() = default;
11fdf7f2 39 int verify_permission() override;
7c673cae
FG
40 void execute() override;
41 int get_params();
11fdf7f2 42 const char* name() const override { return "create_role"; }
7c673cae 43 RGWOpType get_type() override { return RGW_OP_CREATE_ROLE; }
11fdf7f2 44 uint64_t get_op() { return rgw::IAM::iamCreateRole; }
7c673cae
FG
45};
46
47class RGWDeleteRole : public RGWRoleWrite {
48public:
49 RGWDeleteRole() = default;
50 void execute() override;
51 int get_params();
11fdf7f2 52 const char* name() const override { return "delete_role"; }
7c673cae 53 RGWOpType get_type() override { return RGW_OP_DELETE_ROLE; }
11fdf7f2 54 uint64_t get_op() { return rgw::IAM::iamDeleteRole; }
7c673cae
FG
55};
56
57class RGWGetRole : public RGWRoleRead {
11fdf7f2 58 int _verify_permission(const RGWRole& role);
7c673cae
FG
59public:
60 RGWGetRole() = default;
11fdf7f2 61 int verify_permission() override;
7c673cae
FG
62 void execute() override;
63 int get_params();
11fdf7f2 64 const char* name() const override { return "get_role"; }
7c673cae 65 RGWOpType get_type() override { return RGW_OP_GET_ROLE; }
11fdf7f2 66 uint64_t get_op() { return rgw::IAM::iamGetRole; }
7c673cae
FG
67};
68
69class RGWModifyRole : public RGWRoleWrite {
70public:
71 RGWModifyRole() = default;
72 void execute() override;
73 int get_params();
11fdf7f2 74 const char* name() const override { return "modify_role"; }
7c673cae 75 RGWOpType get_type() override { return RGW_OP_MODIFY_ROLE; }
11fdf7f2 76 uint64_t get_op() { return rgw::IAM::iamModifyRole; }
7c673cae
FG
77};
78
79class RGWListRoles : public RGWRoleRead {
80public:
81 RGWListRoles() = default;
11fdf7f2 82 int verify_permission() override;
7c673cae
FG
83 void execute() override;
84 int get_params();
11fdf7f2 85 const char* name() const override { return "list_roles"; }
7c673cae 86 RGWOpType get_type() override { return RGW_OP_LIST_ROLES; }
11fdf7f2 87 uint64_t get_op() { return rgw::IAM::iamListRoles; }
7c673cae
FG
88};
89
90class RGWPutRolePolicy : public RGWRoleWrite {
91public:
92 RGWPutRolePolicy() = default;
93 void execute() override;
94 int get_params();
11fdf7f2 95 const char* name() const override { return "put_role_policy"; }
7c673cae 96 RGWOpType get_type() override { return RGW_OP_PUT_ROLE_POLICY; }
11fdf7f2 97 uint64_t get_op() { return rgw::IAM::iamPutRolePolicy; }
7c673cae
FG
98};
99
100class RGWGetRolePolicy : public RGWRoleRead {
101public:
102 RGWGetRolePolicy() = default;
103 void execute() override;
104 int get_params();
11fdf7f2 105 const char* name() const override { return "get_role_policy"; }
7c673cae 106 RGWOpType get_type() override { return RGW_OP_GET_ROLE_POLICY; }
11fdf7f2 107 uint64_t get_op() { return rgw::IAM::iamGetRolePolicy; }
7c673cae
FG
108};
109
110class RGWListRolePolicies : public RGWRoleRead {
111public:
112 RGWListRolePolicies() = default;
113 void execute() override;
114 int get_params();
11fdf7f2 115 const char* name() const override { return "list_role_policies"; }
7c673cae 116 RGWOpType get_type() override { return RGW_OP_LIST_ROLE_POLICIES; }
11fdf7f2 117 uint64_t get_op() { return rgw::IAM::iamListRolePolicies; }
7c673cae
FG
118};
119
120class RGWDeleteRolePolicy : public RGWRoleWrite {
121public:
122 RGWDeleteRolePolicy() = default;
123 void execute() override;
124 int get_params();
11fdf7f2 125 const char* name() const override { return "delete_role_policy"; }
7c673cae 126 RGWOpType get_type() override { return RGW_OP_DELETE_ROLE_POLICY; }
11fdf7f2 127 uint64_t get_op() { return rgw::IAM::iamDeleteRolePolicy; }
7c673cae 128};