Skip to content

Commit 567ddd5

Browse files
committed
Log the username of CLI users
If the owner isn't running it and the scheduler doesn't have a different user, then use the operating system getlogin user. Allows for detecting the user without assuming the user got there through sudo or similar means
1 parent 827a698 commit 567ddd5

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

cylc/flow/network/resolvers.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
from contextlib import suppress
2222
from fnmatch import fnmatchcase
2323
import logging
24+
import os
2425
import queue
2526
from time import time
2627
from typing import (
@@ -724,10 +725,17 @@ async def _mutation_mapper(
724725
725726
"""
726727
user = meta.get('auth_user', self.schd.owner)
727-
if user == self.schd.owner:
728+
try:
729+
login = os.getlogin()
730+
except OSError:
731+
# No controlling terminal, we're running as the owner
732+
login = self.schd.owner
733+
if user == self.schd.owner and login == self.schd.owner:
728734
log_user = f" from {self.schd.owner}"
729-
else:
735+
elif login == self.schd.owner:
730736
log_user = f" from {user}"
737+
else:
738+
log_user = f" from {login}"
731739

732740
log1 = f'Command "{command}" received{log_user}.'
733741
log2 = (

0 commit comments

Comments
 (0)