20#ifndef ORES_IAM_DOMAIN_PERMISSION_HPP
21#define ORES_IAM_DOMAIN_PERMISSION_HPP
24#include <boost/uuid/uuid.hpp>
25#include "ores.utility/uuid/tenant_id.hpp"
54 boost::uuids::uuid
id;
84 constexpr auto accounts_create =
"iam::accounts:create";
85 constexpr auto accounts_read =
"iam::accounts:read";
86 constexpr auto accounts_update =
"iam::accounts:update";
87 constexpr auto accounts_delete =
"iam::accounts:delete";
88 constexpr auto accounts_lock =
"iam::accounts:lock";
89 constexpr auto accounts_unlock =
"iam::accounts:unlock";
90 constexpr auto accounts_reset_password =
"iam::accounts:reset_password";
93 constexpr auto roles_create =
"iam::roles:create";
94 constexpr auto roles_read =
"iam::roles:read";
95 constexpr auto roles_update =
"iam::roles:update";
96 constexpr auto roles_delete =
"iam::roles:delete";
97 constexpr auto roles_assign =
"iam::roles:assign";
98 constexpr auto roles_revoke =
"iam::roles:revoke";
101 constexpr auto login_info_read =
"iam::login_info:read";
104 constexpr auto tenants_create =
"iam::tenants:create";
105 constexpr auto tenants_read =
"iam::tenants:read";
106 constexpr auto tenants_update =
"iam::tenants:update";
107 constexpr auto tenants_delete =
"iam::tenants:delete";
108 constexpr auto tenants_suspend =
"iam::tenants:suspend";
109 constexpr auto tenants_terminate =
"iam::tenants:terminate";
110 constexpr auto tenants_impersonate =
"iam::tenants:impersonate";
113 constexpr auto iam_all =
"iam::*";
120 constexpr auto currencies_create =
"refdata::currencies:create";
121 constexpr auto currencies_read =
"refdata::currencies:read";
122 constexpr auto currencies_update =
"refdata::currencies:update";
123 constexpr auto currencies_delete =
"refdata::currencies:delete";
124 constexpr auto currencies_history =
"refdata::currencies:history";
127 constexpr auto refdata_all =
"refdata::*";
134 constexpr auto flags_create =
"variability::flags:create";
135 constexpr auto flags_read =
"variability::flags:read";
136 constexpr auto flags_update =
"variability::flags:update";
137 constexpr auto flags_delete =
"variability::flags:delete";
140 constexpr auto variability_all =
"variability::*";
147 constexpr auto change_reasons_read =
"dq::change_reasons:read";
148 constexpr auto change_reasons_write =
"dq::change_reasons:write";
149 constexpr auto change_reasons_delete =
"dq::change_reasons:delete";
152 constexpr auto change_reason_categories_read =
"dq::change_reason_categories:read";
153 constexpr auto change_reason_categories_write =
"dq::change_reason_categories:write";
154 constexpr auto change_reason_categories_delete =
"dq::change_reason_categories:delete";
157 constexpr auto catalogs_read =
"dq::catalogs:read";
158 constexpr auto catalogs_write =
"dq::catalogs:write";
159 constexpr auto catalogs_delete =
"dq::catalogs:delete";
162 constexpr auto data_domains_read =
"dq::data_domains:read";
163 constexpr auto data_domains_write =
"dq::data_domains:write";
164 constexpr auto data_domains_delete =
"dq::data_domains:delete";
167 constexpr auto subject_areas_read =
"dq::subject_areas:read";
168 constexpr auto subject_areas_write =
"dq::subject_areas:write";
169 constexpr auto subject_areas_delete =
"dq::subject_areas:delete";
172 constexpr auto datasets_read =
"dq::datasets:read";
173 constexpr auto datasets_write =
"dq::datasets:write";
174 constexpr auto datasets_delete =
"dq::datasets:delete";
177 constexpr auto methodologies_read =
"dq::methodologies:read";
178 constexpr auto methodologies_write =
"dq::methodologies:write";
179 constexpr auto methodologies_delete =
"dq::methodologies:delete";
182 constexpr auto coding_schemes_read =
"dq::coding_schemes:read";
183 constexpr auto coding_schemes_write =
"dq::coding_schemes:write";
184 constexpr auto coding_schemes_delete =
"dq::coding_schemes:delete";
187 constexpr auto coding_scheme_authority_types_read =
"dq::coding_scheme_authority_types:read";
188 constexpr auto coding_scheme_authority_types_write =
"dq::coding_scheme_authority_types:write";
189 constexpr auto coding_scheme_authority_types_delete =
"dq::coding_scheme_authority_types:delete";
192 constexpr auto nature_dimensions_read =
"dq::nature_dimensions:read";
193 constexpr auto nature_dimensions_write =
"dq::nature_dimensions:write";
194 constexpr auto nature_dimensions_delete =
"dq::nature_dimensions:delete";
197 constexpr auto origin_dimensions_read =
"dq::origin_dimensions:read";
198 constexpr auto origin_dimensions_write =
"dq::origin_dimensions:write";
199 constexpr auto origin_dimensions_delete =
"dq::origin_dimensions:delete";
202 constexpr auto treatment_dimensions_read =
"dq::treatment_dimensions:read";
203 constexpr auto treatment_dimensions_write =
"dq::treatment_dimensions:write";
204 constexpr auto treatment_dimensions_delete =
"dq::treatment_dimensions:delete";
207 constexpr auto dataset_bundles_read =
"dq::dataset_bundles:read";
208 constexpr auto dataset_bundles_write =
"dq::dataset_bundles:write";
209 constexpr auto dataset_bundles_delete =
"dq::dataset_bundles:delete";
212 constexpr auto dataset_bundle_members_read =
"dq::dataset_bundle_members:read";
213 constexpr auto dataset_bundle_members_write =
"dq::dataset_bundle_members:write";
214 constexpr auto dataset_bundle_members_delete =
"dq::dataset_bundle_members:delete";
217 constexpr auto dq_all =
"dq::*";
224 constexpr auto all =
"*";
Domain types for identity and access management.
Definition account.hpp:29
Well-known permission codes used throughout the system.
Definition permission.hpp:78
Represents an atomic permission that can be granted to roles.
Definition permission.hpp:45
std::string description
Human-readable description of what this permission allows.
Definition permission.hpp:67
std::string code
Permission code following the format "component::resource:action".
Definition permission.hpp:62
boost::uuids::uuid id
Unique identifier for the permission.
Definition permission.hpp:54
utility::uuid::tenant_id tenant_id
Tenant identifier for multi-tenancy isolation.
Definition permission.hpp:49
A strongly-typed wrapper around a UUID representing a tenant identifier.
Definition tenant_id.hpp:66
static tenant_id system()
Creates a tenant_id representing the system tenant.
Definition tenant_id.cpp:41