![]() |
MySQL 9.3.0
Source Code Documentation
|
#include <user_manager.h>
Public Types | |
using | PolicyLru = helper::cache::policy::Lru |
using | AuthUser = database::entry::AuthUser |
using | UserId = AuthUser::UserId |
using | UserIndex = AuthUser::UserIndex |
using | Cache = helper::cache::Cache< UserIndex, AuthUser, 100, PolicyLru > |
using | Handler = mrs::interface::AuthorizeHandler |
using | SqlSessionCache = Handler::SqlSessionCached |
using | ChangedUsersIds = std::vector< std::pair< database::entry::UniversalId, std::string > > |
using | QueryFactory = mrs::interface::QueryFactory |
Public Member Functions | |
UserManager (const bool limit_to_existing_users, const helper::Optional< UniversalId > &default_role_id, QueryFactory *query_factory) | |
bool | user_get_by_id (UserId user_id, AuthUser *out_user, SqlSessionCache *out_cache) |
bool | user_get (AuthUser *out_user, SqlSessionCache *out_cache, const bool update_changed=true) |
Find the user data inside a cache or DB. More... | |
void | update_email (SqlSessionCache *out_cache, const UserId &id, const std::optional< std::string > &email) |
void | user_invalidate (const UserId id) |
void | update_users_cache (const ChangedUsersIds &changed_users_ids) |
Private Member Functions | |
bool | query_update_user (SqlSessionCache *out_cache, const UserId user_id, AuthUser *out_user) |
bool | query_insert_user (SqlSessionCache *out_cache, AuthUser *out_user) |
AuthUser * | query_user (SqlSessionCache *out_cache, AuthUser *out_user, bool *out_is_different) |
AuthUser * | cache_get (AuthUser *out_user, bool *out_is_different) |
Private Attributes | |
std::shared_mutex | mutex_query_database_ |
std::shared_mutex | mutex_user_cache_ |
Cache | user_cache_ |
bool | limit_to_existing_users_ |
const helper::Optional< UniversalId > | default_role_id_ |
QueryFactory * | query_factory_ |
using mrs::users::UserManager::AuthUser = database::entry::AuthUser |
using mrs::users::UserManager::Cache = helper::cache::Cache<UserIndex, AuthUser, 100, PolicyLru> |
using mrs::users::UserManager::ChangedUsersIds = std::vector<std::pair<database::entry::UniversalId, std::string> > |
using mrs::users::UserManager::UserId = AuthUser::UserId |
using mrs::users::UserManager::UserIndex = AuthUser::UserIndex |
|
inline |
|
private |
|
private |
|
private |
|
private |
void mrs::users::UserManager::update_email | ( | SqlSessionCache * | out_cache, |
const UserId & | id, | ||
const std::optional< std::string > & | |||
) |
void mrs::users::UserManager::update_users_cache | ( | const ChangedUsersIds & | changed_users_ids | ) |
bool mrs::users::UserManager::user_get | ( | AuthUser * | out_user, |
SqlSessionCache * | out_cache, | ||
const bool | update_changed = true |
||
) |
Find the user data inside a cache or DB.
If the user entry provided to the function differs from the entry found (cache/db), then the DB entry is updated. This behavior is provided for accounts that are imported/managed by other sources like in case of OAUTH2.
bool mrs::users::UserManager::user_get_by_id | ( | UserId | user_id, |
AuthUser * | out_user, | ||
SqlSessionCache * | out_cache | ||
) |
void mrs::users::UserManager::user_invalidate | ( | const UserId | id | ) |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |