[FIX] auth_openid: win32: fix ImportError when trying to get system username

bzr revid: xal@openerp.com-20121227163211-301w0gus2dx40b3w
This commit is contained in:
Xavier ALT
2012-12-27 17:32:11 +01:00
parent 68db5f8684
commit 9920d2700e
+12 -1
View File
@@ -46,7 +46,18 @@ oidutil.log = _logger.debug
def get_system_user():
"""Return system user info string, such as USERNAME-EUID"""
info = getpass.getuser()
try:
info = getpass.getuser()
except ImportError:
if os.name == 'nt':
# when there is no 'USERNAME' in environment, getpass.getuser()
# fail when trying to import 'pwd' module - which is unix only.
# In that case we have to fallback to real win32 API.
import win32api
info = win32api.GetUserName()
else:
raise
euid = getattr(os, 'geteuid', None) # Non available on some platforms
if euid is not None:
info = '%s-%d' % (info, euid())