From 8ca756dbd362e2c36e0d8df4fc5ba694e5ed917b Mon Sep 17 00:00:00 2001 From: Alexandre Aubin Date: Tue, 11 Apr 2023 13:57:50 +0200 Subject: [PATCH] appsv2: simplify code to hydrate url/additional_urls with app settings --- src/utils/resources.py | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/src/utils/resources.py b/src/utils/resources.py index 82c61de8a..876fe46a4 100644 --- a/src/utils/resources.py +++ b/src/utils/resources.py @@ -17,7 +17,6 @@ # along with this program. If not, see . # import os -import re import copy import shutil import random @@ -562,17 +561,15 @@ class PermissionsResource(AppResource): super().__init__({"permissions": properties}, *args, **kwargs) + from yunohost.app import _get_app_settings, _hydrate_app_template + + settings = _get_app_settings(self.app) for perm, infos in self.permissions.items(): - if infos.get("url"): - for variable in re.findall(r"(__[A-Z0-9_]+__)", infos.get("url", "")): - infos["url"] = infos["url"].replace( - variable, self.get_setting(variable.lower().replace("__","")) - ) - for i in range(0, len(infos.get("additional_urls", []))): - for variable in re.findall(r"(__[A-Z0-9_]+__)", infos.get("additional_urls", [])[i]): - infos["additional_urls"][i] = infos["additional_urls"][i].replace( - variable, self.get_setting(variable.lower().replace("__","")) - ) + if infos.get("url") and "__" in infos.get("url"): + infos["url"] = _hydrate_app_template(infos["url"], settings) + + if infos.get("additional_urls"): + infos["additional_urls"] = [_hydrate_app_template(url) for url in infos["additional_urls"]] def provision_or_update(self, context: Dict = {}): from yunohost.permission import (