23#ifndef PACS_WITH_DATABASE_SYSTEM
26class sqlite_security_storage;
32#include <database/core/database_context.h>
33#include <database/database_manager.h>
47class sqlite_security_storage :
public security::security_storage_interface {
53 explicit sqlite_security_storage(std::string db_path);
55 ~sqlite_security_storage()
override;
58 [[nodiscard]]
auto create_user(
const security::User &user)
59 -> VoidResult
override;
60 [[nodiscard]]
auto get_user(std::string_view
id)
61 -> Result<security::User>
override;
62 [[nodiscard]]
auto get_user_by_username(std::string_view username)
63 -> Result<security::User>
override;
64 [[nodiscard]]
auto update_user(
const security::User &user)
65 -> VoidResult
override;
66 [[nodiscard]]
auto delete_user(std::string_view
id) -> VoidResult
override;
68 [[nodiscard]]
auto get_users_by_role(security::Role role)
69 -> Result<std::vector<security::User>>
override;
73 std::shared_ptr<database::database_context> db_context_;
74 std::shared_ptr<database::database_manager> db_manager_;
76 [[nodiscard]]
auto initialize_database() -> VoidResult;
Storage interface for RBAC persistence.