From 611f9150ff1d9e2bcdf8514642f15fecdf9ae464 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Wed, 7 Jun 2023 11:14:47 +0200 Subject: [PATCH] [IMP] runbot_merge: add signed kw support to from_role, use it Closes #774 --- conftest.py | 2 +- runbot_merge/controllers/reviewer_provisioning.py | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/conftest.py b/conftest.py index c47c07a0..09ca14b7 100644 --- a/conftest.py +++ b/conftest.py @@ -355,7 +355,7 @@ def dummy_addons_path(): 'version': '1.0', }), encoding='utf-8') (mod / 'util.py').write_text("""\ -def from_role(_): +def from_role(*_, **__): return lambda fn: fn """, encoding='utf-8') diff --git a/runbot_merge/controllers/reviewer_provisioning.py b/runbot_merge/controllers/reviewer_provisioning.py index 1b7a9f2f..6a9b3af4 100644 --- a/runbot_merge/controllers/reviewer_provisioning.py +++ b/runbot_merge/controllers/reviewer_provisioning.py @@ -6,12 +6,12 @@ from odoo.http import Controller, request, route try: from odoo.addons.saas_worker.util import from_role except ImportError: - def from_role(_): + def from_role(*_, **__): return lambda _: None _logger = logging.getLogger(__name__) class MergebotReviewerProvisioning(Controller): - @from_role('accounts') + @from_role('accounts', signed=True) @route('/runbot_merge/users', type='json', auth='public') def list_users(self): env = request.env(su=True) @@ -23,7 +23,7 @@ class MergebotReviewerProvisioning(Controller): if u.github_login ] - @from_role('accounts') + @from_role('accounts', signed=True) @route('/runbot_merge/provision', type='json', auth='public') def provision_user(self, users): _logger.info('Provisioning %s users: %s.', len(users), ', '.join(map( @@ -107,7 +107,7 @@ class MergebotReviewerProvisioning(Controller): _logger.info("Provisioning: created %d updated %d.", created, updated) return [created, updated] - @from_role('accounts') + @from_role('accounts', signed=True) @route(['/runbot_merge/get_reviewers'], type='json', auth='public') def fetch_reviewers(self, **kwargs): reviewers = request.env['res.partner.review'].sudo().search([ @@ -115,7 +115,7 @@ class MergebotReviewerProvisioning(Controller): ]).mapped('partner_id.github_login') return reviewers - @from_role('accounts') + @from_role('accounts', signed=True) @route(['/runbot_merge/remove_reviewers'], type='json', auth='public', methods=['POST']) def update_reviewers(self, github_logins, **kwargs): partners = request.env['res.partner'].sudo().search([('github_login', 'in', github_logins)])