Patchwork [03,of,11] py3: use pycompat.bytestr to convert str returned by getpass.getuser to bytes

login
register
mail settings
Submitter Pulkit Goyal
Date Feb. 23, 2018, 6:15 p.m.
Message ID <dbcf3a406cf79d296d7e.1519409716@workspace>
Download mbox | patch
Permalink /patch/28286/
State Accepted
Headers show

Comments

Pulkit Goyal - Feb. 23, 2018, 6:15 p.m.
# HG changeset patch
# User Pulkit Goyal <7895pulkit@gmail.com>
# Date 1519386265 -19800
#      Fri Feb 23 17:14:25 2018 +0530
# Node ID dbcf3a406cf79d296d7e29ea2786fd647facd367
# Parent  70c096e42cb8a63a62efe69b87cd7ccc5c539dba
py3: use pycompat.bytestr to convert str returned by getpass.getuser to bytes
Yuya Nishihara - Feb. 24, 2018, 5:20 a.m.
On Fri, 23 Feb 2018 23:45:16 +0530, Pulkit Goyal wrote:
> # HG changeset patch
> # User Pulkit Goyal <7895pulkit@gmail.com>
> # Date 1519386265 -19800
> #      Fri Feb 23 17:14:25 2018 +0530
> # Node ID dbcf3a406cf79d296d7e29ea2786fd647facd367
> # Parent  70c096e42cb8a63a62efe69b87cd7ccc5c539dba
> py3: use pycompat.bytestr to convert str returned by getpass.getuser to bytes
> 
> diff --git a/hgext/acl.py b/hgext/acl.py
> --- a/hgext/acl.py
> +++ b/hgext/acl.py
> @@ -200,6 +200,7 @@ from mercurial import (
>      error,
>      extensions,
>      match,
> +    pycompat,
>      registrar,
>      util,
>  )
> @@ -340,7 +341,7 @@ def hook(ui, repo, hooktype, node=None, 
>              user = urlreq.unquote(url[3])
>  
>      if user is None:
> -        user = getpass.getuser()
> +        user = pycompat.bytestr(getpass.getuser())

getuser() may return non-ASCII characters. Last time we've fixed posix.getuser()
by applying fsencode() because of the implementation detail of Python 3.
Perhaps we can switch this to util.getuser().

Patch

diff --git a/hgext/acl.py b/hgext/acl.py
--- a/hgext/acl.py
+++ b/hgext/acl.py
@@ -200,6 +200,7 @@  from mercurial import (
     error,
     extensions,
     match,
+    pycompat,
     registrar,
     util,
 )
@@ -340,7 +341,7 @@  def hook(ui, repo, hooktype, node=None, 
             user = urlreq.unquote(url[3])
 
     if user is None:
-        user = getpass.getuser()
+        user = pycompat.bytestr(getpass.getuser())
 
     ui.debug('acl: checking access for user "%s"\n' % user)