27#ifndef ROUTER_SRC_MYSQL_REST_SERVICE_SRC_MRS_DATABASE_HELPER_OBJECT_ROW_OWNERSHIP_H_
28#define ROUTER_SRC_MYSQL_REST_SERVICE_SRC_MRS_DATABASE_HELPER_OBJECT_ROW_OWNERSHIP_H_
51 std::vector<mrs::database::entry::RowGroupOwnership>;
55 const std::optional<UserId> &user_id = {},
63 m_user_id(!user_id.has_value() ? std::optional<mysqlrouter::sqlstring>()
67 assert(!
enabled() || user_id.has_value());
71 const std::string &column_name,
Definition: object_row_ownership.h:45
std::vector< mrs::database::entry::RowGroupOwnership > VectorOfRowGroupOwnership
Definition: object_row_ownership.h:51
const VectorOfRowGroupOwnership & m_row_groups
Definition: object_row_ownership.h:112
ObjectRowOwnership(std::shared_ptr< entry::Table > table, const std::string &column_name, const mysqlrouter::sqlstring &user_id, const VectorOfRowGroupOwnership &row_groups={}, const std::set< UniversalId > &user_groups={})
Definition: object_row_ownership.h:70
const std::set< UniversalId > user_groups() const
Definition: object_row_ownership.h:96
const std::set< UniversalId > & m_user_groups
Definition: object_row_ownership.h:113
bool enabled() const
Definition: object_row_ownership.h:85
std::string m_owner_column_name
Definition: object_row_ownership.h:110
mysqlrouter::sqlstring owner_check_expr(const std::string &table_name) const
Definition: object_row_ownership.h:103
std::optional< mysqlrouter::sqlstring > m_user_id
Definition: object_row_ownership.h:111
bool is_owner_id(const entry::Table &table, const entry::Column &column) const
Definition: object_row_ownership.h:87
mysqlrouter::sqlstring owner_check_expr() const
Definition: object_row_ownership.h:98
std::shared_ptr< entry::Table > m_table
Definition: object_row_ownership.h:109
const mysqlrouter::sqlstring & owner_user_id() const
Definition: object_row_ownership.h:81
mrs::database::entry::AuthUser::UserId UserId
Definition: object_row_ownership.h:47
const std::string & owner_column_name() const
Definition: object_row_ownership.h:83
const VectorOfRowGroupOwnership & row_groups() const
Definition: object_row_ownership.h:94
mrs::database::entry::RowUserOwnership RowUserOwnership
Definition: object_row_ownership.h:48
ObjectRowOwnership(std::shared_ptr< entry::Table > table={}, const RowUserOwnership *user_ownership=nullptr, const std::optional< UserId > &user_id={}, const VectorOfRowGroupOwnership &row_groups={}, const std::set< UniversalId > &user_groups={})
Definition: object_row_ownership.h:53
mrs::database::entry::UniversalId UniversalId
Definition: object_row_ownership.h:49
Definition: utils_sqlstring.h:67
mrs::database::entry::RowUserOwnership RowUserOwnership
Definition: handler_db_object_table.cc:75
static PFS_engine_table_share_proxy table
Definition: pfs.cc:61
entry::Column Column
Definition: select.h:53
entry::Table Table
Definition: select.h:51
mysqlrouter::sqlstring sqlstring
Definition: query_retry_on_ro.cc:36
mysqlrouter::sqlstring to_sqlstring(entry::Column *dfield, Value *value)
Definition: filter_object_generator.cc:254
Definition: authorize_manager.h:48
mrs::database::entry::UniversalId UniversalId
Definition: universal_id.h:33
const char * table_name
Definition: rules_table_service.cc:56
UniversalId UserId
Definition: auth_user.h:48
Definition: row_user_ownership.h:35
std::string user_ownership_column
Definition: row_user_ownership.h:37
bool user_ownership_enforced
Definition: row_user_ownership.h:36