diff options
author | Alejandro Sirgo Rica <asirgo@soleta.eu> | 2024-11-13 19:41:20 +0100 |
---|---|---|
committer | Alejandro Sirgo Rica <asirgo@soleta.eu> | 2024-11-21 17:19:27 +0100 |
commit | 0bc485e2c4ccdc5e117bbb9f12d85e926ba7deac (patch) | |
tree | 276f51d2c303f520a398aac8ddcbdfe560d6ddb7 /src/virtual | |
parent | bd921dcbd69526c22cd5f2acf60f6ab528e50c04 (diff) |
src: add user session detection implementationwinlinux
Detect user login and logout for Linux and Windows.
Report an active interactive session through the /refresh response
so a new ogserver instance can update the session status.
Poll the session change in 5 second intervals in a thread. Use the
same event socket previously used by the old session detection
mechanism to notify a session change.
Use the method check_interactive_session_change in each
ogOperations.py to report the session status.
Return values:
None: no session changes are found
True: login
False: logout
Windows
check_interactive_session_change uses the WMI API to obtain session
information. Obtain the list of sessions associated to interactive
sessions and then filter the sessions with a valid user.
Linux
Check if any user has the DISPLAY or WAYLAND_DISPLAY environment
variable defined as that means there is an interactive session
in execution.
Diffstat (limited to 'src/virtual')
-rw-r--r-- | src/virtual/ogOperations.py | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/virtual/ogOperations.py b/src/virtual/ogOperations.py index c51f59d..86ae0ed 100644 --- a/src/virtual/ogOperations.py +++ b/src/virtual/ogOperations.py @@ -629,3 +629,6 @@ class OgVirtualOperations: for k, v in device_names.items(): f.write(f'{k}={v}\n') f.truncate() + + def check_interactive_session_change(self): + return None |