J’ai une configuration Apache httpd + mod_wsgi + Mercurial et je voudrais avoir un utilisateur authentifié dans un hook, en particulier le hook pretxnchangegroup
. J’ai lu (probablement à tort) que os.environ['REMOTE_USER']
devrait contenir cette information, mais ne ressemble pas à cela.
J’ai actuellement une extension qui imprime os.environ
à stderr
.
import sys import os def pretxnchangegroup_hook(ui, repo, **kwargs): print >> sys.stderr, 'pretxnchangegroup activated' print >> sys.stderr, os.environ def reposetup(ui, repo): ui.setconfig('hooks', 'incoming.accesscontrol', pretxnchangegroup_hook)
Avec hg -v push
ces sorties de code:
remote: calling hook incoming.accesscontrol: remote: pretxnchangegroup activated remote: {'LANG': 'C', 'TERM': 'xterm', 'SHLVL': '2', 'PWD': '/', 'PATH': '/sbin:/usr/sbin:/bin:/usr/bin', '_': '/usr/sbin/httpd'}
Ok, j’espère que cela aidera n’importe qui en dehors de moi, parce que je n’ai pas pu trouver cela mentionné nulle part ailleurs.
Un utilisateur authentifié ( REMOTE_USER
) et de nombreuses autres informations peuvent être atteintes sur la carte repo.ui.environ
, où repo
est un paramètre transmis à un hook.
J’imagine que cette carte est la même que celle de os.environ
sous mod_cgi.