|
PACS System 0.1.0
PACS DICOM system library
|
Represents the security context for a user session. More...
#include <user_context.h>

Public Types | |
| using | clock = std::chrono::steady_clock |
| using | time_point = clock::time_point |
Public Member Functions | |
| user_context (User user, std::string session_id) | |
| Construct a user context. | |
| const User & | user () const noexcept |
| const std::string & | session_id () const noexcept |
| time_point | created_at () const noexcept |
| time_point | last_activity () const noexcept |
| bool | is_valid () const noexcept |
| Check if the context is valid (user is active) | |
| bool | has_role (Role role) const |
| Check if user has a specific role. | |
| void | touch () |
| Update last activity timestamp. | |
| void | set_source_ae_title (std::string ae) |
| const std::optional< std::string > & | source_ae_title () const noexcept |
| void | set_source_ip (std::string ip) |
| const std::optional< std::string > & | source_ip () const noexcept |
Static Public Member Functions | |
| static user_context | system_context () |
| Create a system context for internal operations. | |
| static user_context | anonymous_context (const std::string &session_id) |
| Create an anonymous context with minimal permissions. | |
Private Attributes | |
| User | user_ |
| std::string | session_id_ |
| time_point | created_at_ |
| time_point | last_activity_ |
| std::optional< std::string > | source_ae_title_ |
| std::optional< std::string > | source_ip_ |
Represents the security context for a user session.
Encapsulates user information along with session-specific data for access control decisions.
Definition at line 29 of file user_context.h.
| using kcenon::pacs::security::user_context::clock = std::chrono::steady_clock |
Definition at line 31 of file user_context.h.
| using kcenon::pacs::security::user_context::time_point = clock::time_point |
Definition at line 32 of file user_context.h.
|
inline |
Construct a user context.
| user | The authenticated user |
| session_id | Unique session identifier |
Definition at line 39 of file user_context.h.
Referenced by anonymous_context(), and system_context().

|
inlinestatic |
Create an anonymous context with minimal permissions.
Definition at line 58 of file user_context.h.
References kcenon::pacs::security::User::active, kcenon::pacs::security::User::id, kcenon::pacs::security::User::roles, session_id(), user_context(), and kcenon::pacs::security::User::username.

|
inlinenodiscardnoexcept |
|
inlinenodiscard |
Check if user has a specific role.
Definition at line 85 of file user_context.h.
References kcenon::pacs::security::User::has_role(), and user_.

|
inlinenodiscardnoexcept |
Check if the context is valid (user is active)
Definition at line 80 of file user_context.h.
References kcenon::pacs::security::User::active, and user_.
Referenced by kcenon::pacs::security::access_control_manager::check_dicom_operation().

|
inlinenodiscardnoexcept |
Definition at line 73 of file user_context.h.
References last_activity_.
|
inlinenodiscardnoexcept |
Definition at line 69 of file user_context.h.
References session_id_.
Referenced by anonymous_context().

|
inline |
Definition at line 93 of file user_context.h.
References source_ae_title_.
|
inline |
Definition at line 101 of file user_context.h.
References source_ip_.
|
inlinenodiscardnoexcept |
Definition at line 97 of file user_context.h.
References source_ae_title_.
|
inlinenodiscardnoexcept |
Definition at line 102 of file user_context.h.
References source_ip_.
|
inlinestatic |
Create a system context for internal operations.
Definition at line 46 of file user_context.h.
References kcenon::pacs::security::User::active, kcenon::pacs::security::User::id, kcenon::pacs::security::User::roles, kcenon::pacs::security::System, user_context(), and kcenon::pacs::security::User::username.

|
inline |
Update last activity timestamp.
Definition at line 90 of file user_context.h.
References last_activity_.
|
inlinenodiscardnoexcept |
Definition at line 68 of file user_context.h.
References user_.
Referenced by kcenon::pacs::security::access_control_manager::check_dicom_operation().

|
private |
Definition at line 109 of file user_context.h.
Referenced by created_at().
|
private |
Definition at line 110 of file user_context.h.
Referenced by last_activity(), and touch().
|
private |
Definition at line 108 of file user_context.h.
Referenced by session_id().
|
private |
Definition at line 111 of file user_context.h.
Referenced by set_source_ae_title(), and source_ae_title().
|
private |
Definition at line 112 of file user_context.h.
Referenced by set_source_ip(), and source_ip().
|
private |
Definition at line 107 of file user_context.h.
Referenced by has_role(), is_valid(), and user().