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