]>
Commit | Line | Data |
---|---|---|
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 | ||
8 | class RGWRestRole : public RGWRESTOp { | |
7c673cae FG |
9 | protected: |
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 | 18 | public: |
11fdf7f2 | 19 | int verify_permission() override; |
7c673cae | 20 | void send_response() override; |
11fdf7f2 | 21 | virtual uint64_t get_op() = 0; |
7c673cae FG |
22 | }; |
23 | ||
24 | class RGWRoleRead : public RGWRestRole { | |
25 | public: | |
26 | RGWRoleRead() = default; | |
9f95a23c | 27 | int check_caps(const RGWUserCaps& caps) override; |
7c673cae FG |
28 | }; |
29 | ||
30 | class RGWRoleWrite : public RGWRestRole { | |
31 | public: | |
32 | RGWRoleWrite() = default; | |
9f95a23c | 33 | int check_caps(const RGWUserCaps& caps) override; |
7c673cae FG |
34 | }; |
35 | ||
36 | class RGWCreateRole : public RGWRoleWrite { | |
37 | public: | |
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 | ||
47 | class RGWDeleteRole : public RGWRoleWrite { | |
48 | public: | |
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 | ||
57 | class RGWGetRole : public RGWRoleRead { | |
11fdf7f2 | 58 | int _verify_permission(const RGWRole& role); |
7c673cae FG |
59 | public: |
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 | ||
69 | class RGWModifyRole : public RGWRoleWrite { | |
70 | public: | |
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 | ||
79 | class RGWListRoles : public RGWRoleRead { | |
80 | public: | |
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 | ||
90 | class RGWPutRolePolicy : public RGWRoleWrite { | |
91 | public: | |
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 | ||
100 | class RGWGetRolePolicy : public RGWRoleRead { | |
101 | public: | |
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 | ||
110 | class RGWListRolePolicies : public RGWRoleRead { | |
111 | public: | |
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 | ||
120 | class RGWDeleteRolePolicy : public RGWRoleWrite { | |
121 | public: | |
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 | }; |