![]() |
MySQL 9.5.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 |