Mercurial > public > mercurial-scm > hg-stable
diff mercurial/wireprotoserver.py @ 36808:0b18604db95e
wireproto: declare permissions requirements in @wireprotocommand (API)
With the security patches from 4.5.2 merged into default, we now
have a per-command attribute defining what permissions are needed
to run that command. We now have a richer @wireprotocommand that
can be extended to record additional command metadata. So we
port the permissions mechanism to be based on @wireprotocommand.
.. api::
hgweb_mod.perms and wireproto.permissions have been removed. Wire
protocol commands should declare their required permissions in the
@wireprotocommand decorator.
Differential Revision: https://phab.mercurial-scm.org/D2718
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Wed, 07 Mar 2018 16:02:24 -0800 |
parents | c638a13093cf |
children | 66de4555cefd |
line wrap: on
line diff
--- a/mercurial/wireprotoserver.py Tue Mar 06 15:08:33 2018 -0800 +++ b/mercurial/wireprotoserver.py Wed Mar 07 16:02:24 2018 -0800 @@ -242,11 +242,7 @@ 'over HTTP')) return [] - # Assume commands with no defined permissions are writes / - # for pushes. This is the safest from a security perspective - # because it doesn't allow commands with undefined semantics - # from bypassing permissions checks. - checkperm(wireproto.permissions.get(cmd, 'push')) + checkperm(wireproto.commands[cmd].permission) rsp = wireproto.dispatch(repo, proto, cmd)