Support variables in permissions declaration

This commit is contained in:
tituspijean 2023-04-06 23:21:57 +02:00 committed by GitHub
parent 021099aa1e
commit a66fccbd5b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -17,6 +17,7 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
import os import os
import re
import copy import copy
import shutil import shutil
import random import random
@ -562,14 +563,16 @@ class PermissionsResource(AppResource):
super().__init__({"permissions": properties}, *args, **kwargs) super().__init__({"permissions": properties}, *args, **kwargs)
for perm, infos in self.permissions.items(): for perm, infos in self.permissions.items():
if infos.get("url") and "__DOMAIN__" in infos.get("url", ""): if infos.get("url"):
infos["url"] = infos["url"].replace( for variable in re.findall(r"(__[A-Z0-9_]+__)", infos.get("url", "")):
"__DOMAIN__", self.get_setting("domain") infos["url"] = infos["url"].replace(
) variable, self.get_setting(variable.lower().replace("__",""))
infos["additional_urls"] = [ )
u.replace("__DOMAIN__", self.get_setting("domain")) for i in range(0, len(infos.get("additional_urls", []))):
for u in 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("__",""))
)
def provision_or_update(self, context: Dict = {}): def provision_or_update(self, context: Dict = {}):
from yunohost.permission import ( from yunohost.permission import (