# HG changeset patch # User Pierre-Yves David # Date 1394136904 28800 # Node ID e9eeef0d07ece98115905a9d1c986c66a0a68204 # Parent 3ec90de035628430aa782f27d9f59c262e3f4610 exchange: enforce permission on new wireprotocol command hgweb needs an explicit declaration of the permission level of each commands. diff -r 3ec90de03562 -r e9eeef0d07ec hgext/evolve.py --- a/hgext/evolve.py Wed Mar 05 19:08:58 2014 -0800 +++ b/hgext/evolve.py Thu Mar 06 12:15:04 2014 -0800 @@ -64,6 +64,7 @@ from mercurial.node import nullid from mercurial import wireproto from mercurial import localrepo +from mercurial.hgweb import hgweb_mod _pack = struct.pack @@ -2448,6 +2449,9 @@ @eh.extsetup def _installwireprotocol(ui): localrepo.MODERNCAPS.add('_evoext_pullobsmarkers_0') + hgweb_mod.perms['evoext_pushobsmarkers_0'] = 'push' + hgweb_mod.perms['evoext_pullobsmarkers_0'] = 'pull' + hgweb_mod.perms['evoext_obshash'] = 'pull' wireproto.commands['evoext_pushobsmarkers_0'] = (srv_pushobsmarkers, '') wireproto.commands['evoext_pullobsmarkers_0'] = (srv_pullobsmarkers, '*') wireproto.commands['evoext_obshash'] = (srv_obshash, 'nodes') diff -r 3ec90de03562 -r e9eeef0d07ec hgext/simple4server.py --- a/hgext/simple4server.py Wed Mar 05 19:08:58 2014 -0800 +++ b/hgext/simple4server.py Thu Mar 06 12:15:04 2014 -0800 @@ -17,6 +17,7 @@ from mercurial import obsolete from cStringIO import StringIO from mercurial import node +from mercurial.hgweb import hgweb_mod _pack = struct.pack def srv_pushobsmarkers(repo, proto): @@ -178,6 +179,9 @@ def extsetup(ui): obsolete.obsstore = pruneobsstore obsolete.obsstore.relevantmarkers = relevantmarkers + hgweb_mod.perms['evoext_pushobsmarkers_0'] = 'push' + hgweb_mod.perms['evoext_pullobsmarkers_0'] = 'pull' + hgweb_mod.perms['evoext_obshash'] = 'pull' wireproto.commands['evoext_pushobsmarkers_0'] = (srv_pushobsmarkers, '') wireproto.commands['evoext_pullobsmarkers_0'] = (srv_pullobsmarkers, '*') extensions.wrapfunction(wireproto, 'capabilities', capabilities)