From a719ab05a2b97ecc0659137111eb2f94f6979d96 Mon Sep 17 00:00:00 2001 From: Kay0u Date: Wed, 20 Nov 2019 13:28:10 +0900 Subject: [PATCH 01/10] [Fix] permission create --- src/yunohost/permission.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/yunohost/permission.py b/src/yunohost/permission.py index 8e1be4451..87891e9d6 100644 --- a/src/yunohost/permission.py +++ b/src/yunohost/permission.py @@ -273,9 +273,8 @@ def permission_create(operation_logger, permission, url=None, allowed=None, sync if allowed: if not isinstance(allowed, list): to_add = [allowed] - # For main permission, we add all users by default - elif permission.endswith(".main"): - to_add = "all_users" + else: + to_add = allowed new_permission = _update_ldap_group_permission(permission=permission, allowed=to_add, sync_perm=sync_perm) @@ -295,6 +294,10 @@ def permission_url(operation_logger, permission, url=None, sync_perm=True): from yunohost.utils.ldap import _get_ldap_interface ldap = _get_ldap_interface() + # By default, manipulate main permission + if "." not in permission: + permission = permission + ".main" + # Fetch existing permission existing_permission = user_permission_list(full=True)["permissions"].get(permission, None) From 1b8e52896579335c77a1d47c841826d68372b753 Mon Sep 17 00:00:00 2001 From: Kay0u Date: Thu, 21 Nov 2019 18:13:20 +0900 Subject: [PATCH 02/10] symplify premission_create --- src/yunohost/permission.py | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/src/yunohost/permission.py b/src/yunohost/permission.py index 87891e9d6..cfd806b1b 100644 --- a/src/yunohost/permission.py +++ b/src/yunohost/permission.py @@ -267,16 +267,7 @@ def permission_create(operation_logger, permission, url=None, allowed=None, sync except Exception as e: raise YunohostError('permission_creation_failed', permission=permission, error=e) - to_add = None - - # If who should be allowed is explicitly provided, use this info - if allowed: - if not isinstance(allowed, list): - to_add = [allowed] - else: - to_add = allowed - - new_permission = _update_ldap_group_permission(permission=permission, allowed=to_add, sync_perm=sync_perm) + new_permission = _update_ldap_group_permission(permission=permission, allowed=allowed, sync_perm=sync_perm) logger.debug(m18n.n('permission_created', permission=permission)) return new_permission From 63e756b9f544118cb7661e8dca9d2070196db1ea Mon Sep 17 00:00:00 2001 From: Alexandre Aubin Date: Fri, 22 Nov 2019 16:41:43 +0100 Subject: [PATCH 03/10] Adjust tests because now all_users ain't added automatically by permission_create for .main perms --- src/yunohost/tests/test_permission.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/yunohost/tests/test_permission.py b/src/yunohost/tests/test_permission.py index 5780ac455..b3fa9fefb 100644 --- a/src/yunohost/tests/test_permission.py +++ b/src/yunohost/tests/test_permission.py @@ -33,8 +33,8 @@ def setup_function(function): user_create("alice", "Alice", "White", "alice@" + maindomain, dummy_password) user_create("bob", "Bob", "Snow", "bob@" + maindomain, dummy_password) - permission_create("wiki.main", url="/", sync_perm=False) - permission_create("blog.main", sync_perm=False) + permission_create("wiki.main", url="/", allowed=["all_users"] , sync_perm=False) + permission_create("blog.main", allowed=["all_users"], sync_perm=False) user_permission_update("blog.main", remove="all_users", add="alice") @@ -217,7 +217,7 @@ def test_permission_list(): def test_permission_create_main(mocker): with message(mocker, "permission_created", permission="site.main"): - permission_create("site.main") + permission_create("site.main", allowed=["all_users"]) res = user_permission_list(full=True)['permissions'] assert "site.main" in res @@ -236,7 +236,7 @@ def test_permission_create_extra(mocker): assert res['site.test']['corresponding_users'] == [] -def test_permission_create_with_allowed(): +def test_permission_create_with_specific_user(): permission_create("site.test", allowed=["alice"]) res = user_permission_list(full=True)['permissions'] From 0277ec4f12b679c4dc835ff50eade204ff93b1af Mon Sep 17 00:00:00 2001 From: Alexandre Aubin Date: Fri, 22 Nov 2019 17:15:44 +0100 Subject: [PATCH 04/10] Warn early about unexisting user/groups (otherwise this triggers a journal entry for nothing) + simplify code, explicit assumptions --- src/yunohost/permission.py | 48 ++++++++++++++++++++------------------ 1 file changed, 25 insertions(+), 23 deletions(-) diff --git a/src/yunohost/permission.py b/src/yunohost/permission.py index cfd806b1b..dabd2b054 100644 --- a/src/yunohost/permission.py +++ b/src/yunohost/permission.py @@ -91,9 +91,7 @@ def user_permission_update(operation_logger, permission, add=None, remove=None, add -- List of groups or usernames to add to this permission remove -- List of groups or usernames to remove from to this permission """ - from yunohost.hook import hook_callback - from yunohost.utils.ldap import _get_ldap_interface - ldap = _get_ldap_interface() + from yunohost.user import user_group_list # By default, manipulate main permission if "." not in permission: @@ -115,10 +113,13 @@ def user_permission_update(operation_logger, permission, add=None, remove=None, # Compute new allowed group list (and make sure what we're doing make sense) new_allowed_groups = copy.copy(current_allowed_groups) + all_existing_groups = user_group_list()['groups'].keys() if add: groups_to_add = [add] if not isinstance(add, list) else add for group in groups_to_add: + if group not in all_existing_groups: + raise YunohostError('group_unknown', group=group) if group in current_allowed_groups: logger.warning(m18n.n('permission_already_allowed', permission=permission, group=group)) else: @@ -170,9 +171,6 @@ def user_permission_reset(operation_logger, permission, sync_perm=True): Keyword argument: permission -- Name of the permission (e.g. mail or nextcloud or wordpress.editors) """ - from yunohost.hook import hook_callback - from yunohost.utils.ldap import _get_ldap_interface - ldap = _get_ldap_interface() # By default, manipulate main permission if "." not in permission: @@ -231,6 +229,7 @@ def permission_create(operation_logger, permission, url=None, allowed=None, sync """ from yunohost.utils.ldap import _get_ldap_interface + from yunohost.user import user_group_list ldap = _get_ldap_interface() # By default, manipulate main permission @@ -259,6 +258,13 @@ def permission_create(operation_logger, permission, url=None, allowed=None, sync if url: attr_dict['URL'] = url + # Validate that the groups to add actually exist + all_existing_groups = user_group_list()['groups'].keys() + allowed_ = [] if allowed is None else [allowed] if not isinstance(allowed, list) else allowed + for group in allowed_: + if group not in all_existing_groups: + raise YunohostError('group_unknown', group=group) + operation_logger.related_to.append(('app', permission.split(".")[0])) operation_logger.start() @@ -404,38 +410,34 @@ def permission_sync_to_user(): os.system('nscd --invalidate=passwd') os.system('nscd --invalidate=group') + def _update_ldap_group_permission(permission, allowed, sync_perm=True): """ Internal function that will rewrite user permission permission -- Name of the permission (e.g. mail or nextcloud or wordpress.editors) allowed -- A list of group/user to allow for the permission + + + Assumptions made, that should be checked before calling this function: + - the permission does currently exists ... + - the 'allowed' list argument is *different* from the current + permission state ... otherwise ldap will miserably fail in such + case... + - the 'allowed' list contains *existing* groups. """ from yunohost.hook import hook_callback - from yunohost.user import user_group_list from yunohost.utils.ldap import _get_ldap_interface ldap = _get_ldap_interface() # Fetch currently allowed groups for this permission + existing_permission = user_permission_list(full=True)["permissions"][permission] - existing_permission = user_permission_list(full=True)["permissions"].get(permission, None) - if existing_permission is None: - raise YunohostError('permission_not_found', permission=permission) + if allowed is None: + return existing_permission - all_existing_groups = user_group_list()['groups'].keys() - - if allowed: - if not isinstance(allowed, list): - allowed = [allowed] - for group in allowed: - if group not in all_existing_groups: - raise YunohostError('group_unknown', group=group) - else: - if sync_perm: - permission_sync_to_user() - - return user_permission_list(full=True)["permissions"][permission] + allowed = [allowed] if not isinstance(allowed, list) else allowed try: ldap.update('cn=%s,ou=permission' % permission, From 6edba30eb91a2bb33b96f9d07c4a08df99a8ab8b Mon Sep 17 00:00:00 2001 From: Alexandre Aubin Date: Fri, 22 Nov 2019 21:16:32 +0100 Subject: [PATCH 05/10] Try to improve the wording of those messages... --- locales/fr.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/locales/fr.json b/locales/fr.json index 1300657cf..a52be20c7 100644 --- a/locales/fr.json +++ b/locales/fr.json @@ -422,9 +422,9 @@ "log_category_404": "Le journal de la catégorie '{category}' n’existe pas", "log_link_to_log": "Journal historisé complet de cette opération : ' {desc} '", "log_help_to_get_log": "Pour voir le journal historisé de cette opération '{desc}', utilisez la commande 'yunohost log display {name}'", - "log_link_to_failed_log": "L’opération '{desc}' a échouée ! Pour avoir de l’aide, merci cliqué ici pour avoir de l'aide", + "log_link_to_failed_log": "L’opération '{desc}' a échouée ! Pour obtenir de l’aide, merci de partager le journal de l'opération en cliquant ici", "backup_php5_to_php7_migration_may_fail": "Impossible de convertir votre archive pour prendre en charge PHP 7, vous pourriez ne plus pouvoir restaurer vos applications PHP (cause : {error:s})", - "log_help_to_get_failed_log": "L’opération '{desc}' a échouée ! Pour avoir de l’aide, merci de partager le journal historisé de cette opération en utilisant la commande 'yunohost log display {name} --share'", + "log_help_to_get_failed_log": "L’opération '{desc}' a échouée ! Pour obtenir de l’aide, merci de partager le journal de l'opération en utilisant la commande 'yunohost log display {name} --share'", "log_does_exists": "Il n’existe pas de journal historisé de l’opération ayant pour nom '{log}', utiliser 'yunohost log list pour voir tous les fichiers de journaux historisés disponibles'", "log_operation_unit_unclosed_properly": "L’opération ne s’est pas terminée correctement", "log_app_addaccess": "Ajouter l’accès à '{}'", From 999006dbda7780bc95f12620f0a3e2042f0e0d32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A9lanie=20Chauvel?= Date: Wed, 20 Nov 2019 18:12:16 +0000 Subject: [PATCH 06/10] Translated using Weblate (French) Currently translated at 99.5% (601 of 604 strings) Translation: YunoHost/core Translate-URL: https://translate.yunohost.org/projects/yunohost/core/fr/ --- locales/fr.json | 33 +++++++++++++++++++++------------ 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/locales/fr.json b/locales/fr.json index a52be20c7..2de198614 100644 --- a/locales/fr.json +++ b/locales/fr.json @@ -200,21 +200,21 @@ "service_configuration_conflict": "Le fichier {file:s} a été modifié depuis sa dernière génération. Veuillez y appliquer les modifications manuellement ou utiliser l’option --force (ce qui écrasera toutes les modifications effectuées sur le fichier).", "service_configured": "La configuration du service « {service:s} » a été générée avec succès", "service_configured_all": "La configuration de tous les services a été générée avec succès", - "service_disable_failed": "Impossible de désactiver le service '{service:s}'\n\nJournaux historisés récents : {logs:s}", - "service_disabled": "Le service '{service:s}' a été désactivé", - "service_enable_failed": "Impossible d’activer le service '{service:s}'\n\nJournaux historisés récents : {logs:s}", - "service_enabled": "Le service '{service:s}' a été activé", + "service_disable_failed": "Impossible de ne pas lancer le service « {service:s} » au démarrage.\n\nJournaux récents du service : {logs:s}", + "service_disabled": "Le service « {service:s} » ne sera plus lancé au démarrage du système.", + "service_enable_failed": "Impossible de lancer automatiquement le service « {service:s} » au démarrage.\n\nJournaux récents du service : {logs:s}", + "service_enabled": "Le service « {service:s} » sera désormais lancé automatiquement au démarrage du système.", "service_no_log": "Aucun journal à afficher pour le service '{service:s}'", "service_regenconf_dry_pending_applying": "Vérification des configurations en attentes qui pourraient être appliquées au le service '{service}' …", "service_regenconf_failed": "Impossible de régénérer la configuration pour les services : {services}", "service_regenconf_pending_applying": "Application des configurations en attentes pour le service '{service}' …", "service_remove_failed": "Impossible de supprimer le service '{service:s}'", - "service_removed": "Le service '{service:s}' a été supprimé", + "service_removed": "Le service « {service:s} » a été supprimé", "service_start_failed": "Impossible de démarrer le service '{service:s}'\n\nJournaux historisés récents : {logs:s}", - "service_started": "Le service '{service:s}' a été démarré", + "service_started": "Le service « {service:s} » a été démarré", "service_status_failed": "Impossible de déterminer le statut du service '{service:s}'", "service_stop_failed": "Impossible d’arrêter le service '{service:s}'\n\nJournaux historisés récents : {logs:s}", - "service_stopped": "Le service '{service:s}' a été arrêté", + "service_stopped": "Le service « {service:s} » a été arrêté", "service_unknown": "Le service '{service:s}' est inconnu", "services_configured": "La configuration a été générée avec succès", "show_diff": "Voici les différences :\n{diff:s}", @@ -517,11 +517,11 @@ "root_password_replaced_by_admin_password": "Votre mot de passe root a été remplacé par votre mot de passe administrateur.", "service_conf_now_managed_by_yunohost": "Le fichier de configuration '{conf}' est maintenant géré par YunoHost.", "service_reload_failed": "Impossible de recharger le service '{service:s}'.\n\nJournaux historisés récents de ce service : {logs:s}", - "service_reloaded": "Le service '{service:s}' a été rechargé", + "service_reloaded": "Le service « {service:s} » a été rechargé", "service_restart_failed": "Impossible de redémarrer le service '{service:s}'\n\nJournaux historisés récents de ce service : {logs:s}", - "service_restarted": "Le service '{service:s}' a été redémarré", + "service_restarted": "Le service « {service:s} » a été redémarré", "service_reload_or_restart_failed": "Impossible de recharger ou de redémarrer le service '{service:s}'\n\nJournaux historisés récents de ce service : {logs:s}", - "service_reloaded_or_restarted": "Le service '{service:s}' a été rechargé ou redémarré", + "service_reloaded_or_restarted": "Le service « {service:s} » a été rechargé ou redémarré", "this_action_broke_dpkg": "Cette action a laissé des paquets non configurés par dpkg/apt (les gestionnaires de paquets système). Vous pouvez essayer de résoudre ce problème en vous connectant via SSH et en exécutant `sudo dpkg --configure -a`.", "app_action_cannot_be_ran_because_required_services_down": "Ces services requis doivent être en cours d'exécution pour exécuter cette action: {services}. Essayez de les redémarrer pour continuer (et éventuellement rechercher pourquoi ils sont en panne).", "admin_password_too_long": "Veuillez choisir un mot de passe de moins de 127 caractères", @@ -543,7 +543,7 @@ "migration_description_0009_decouple_regenconf_from_services": "Dissocier le mécanisme « regen-conf » des services", "migration_description_0010_migrate_to_apps_json": "Supprimez les catalogues d'applications obsolètes et utilisez à la place la nouvelle liste unifiée 'apps.json' (obsolète, remplacée par la migration 13).", "regenconf_file_kept_back": "Le fichier de configuration '{conf}' devait être supprimé par « regen-conf » (catégorie {category}) mais a été conservé.", - "regenconf_updated": "La configuration a été mise à jour pour la catégorie '{category}'", + "regenconf_updated": "La configuration a été mise à jour pour '{category}'", "regenconf_would_be_updated": "La configuration aurait dû être mise à jour pour la catégorie '{category}'", "regenconf_dry_pending_applying": "Vérification de la configuration en attente qui aurait été appliquée pour la catégorie '{category}' …", "regenconf_failed": "Impossible de régénérer la configuration pour la ou les catégorie(s) : '{categories}'", @@ -741,5 +741,14 @@ "diagnosis_http_ok": "Le domaine {domain} est accessible de l'extérieur.", "diagnosis_http_unreachable": "Le domaine {domain} est inaccessible via HTTP de l'extérieur.", "diagnosis_unknown_categories": "Les catégories suivantes sont inconnues: {categories}", - "migration_description_0013_futureproof_apps_catalog_system": "Migrer vers le nouveau système de catalogue d'applications à l'épreuve du temps" + "migration_description_0013_futureproof_apps_catalog_system": "Migrer vers le nouveau système de catalogue d'applications à l'épreuve du temps", + "app_upgrade_script_failed": "Une erreur s'est produite durant l’exécution du script de mise à niveau de l'application", + "migration_description_0014_remove_app_status_json": "Supprimer les fichiers d'application status.json hérités", + "diagnosis_services_running": "Le service {service} s'exécute correctement !", + "diagnosis_services_conf_broken": "La configuration est cassée pour le service {service} !", + "diagnosis_ports_needed_by": "Rendre ce port accessible est nécessaire pour le service {0}", + "diagnosis_ports_forwarding_tip": "Pour résoudre ce problème, vous devez très probablement configurer le transfert de port sur votre routeur Internet comme décrit dans https://yunohost.org/port_forwarding", + "diagnosis_http_connection_error": "Erreur de connexion : impossible de se connecter au domaine demandé, il est probablement injoignable.", + "diagnosis_no_cache": "Pas encore de diagnostique de cache pour la catégorie « {category} »", + "diagnosis_http_unknown_error": "Une erreur est survenue en essayant de joindre votre domaine, il est probablement injoignable." } From 65fee9c300eb1f621083f893345a4fd872d99b77 Mon Sep 17 00:00:00 2001 From: ppr Date: Mon, 18 Nov 2019 19:32:40 +0000 Subject: [PATCH 07/10] Translated using Weblate (French) Currently translated at 99.8% (598 of 599 strings) Translation: YunoHost/core Translate-URL: https://translate.yunohost.org/projects/yunohost/core/fr/ --- locales/fr.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/locales/fr.json b/locales/fr.json index 2de198614..a03c4a61f 100644 --- a/locales/fr.json +++ b/locales/fr.json @@ -28,7 +28,7 @@ "app_sources_fetch_failed": "Impossible de récupérer les fichiers sources, l'URL est-elle correcte ?", "app_unknown": "Application inconnue", "app_unsupported_remote_type": "Ce type de commande à distance utilisé pour cette application n'est pas supporté", - "app_upgrade_failed": "Impossible de mettre à jour {app:s}", + "app_upgrade_failed": "Impossible de mettre à jour {app:s} : {error}", "app_upgraded": "{app:s} mis à jour", "appslist_fetched": "La liste d’applications mise à jour '{appslist:s}'", "appslist_removed": "La liste d'applications '{appslist:s}' a été supprimée", @@ -462,7 +462,7 @@ "log_tools_shutdown": "Éteindre votre serveur", "log_tools_reboot": "Redémarrer votre serveur", "mail_unavailable": "Cette adresse de courriel est réservée et doit être automatiquement attribuée au tout premier utilisateur", - "migration_description_0004_php5_to_php7_pools": "Reconfigurez les groupes PHP pour utiliser PHP 7 au lieu de PHP 5", + "migration_description_0004_php5_to_php7_pools": "Reconfigurer les espaces utilisateurs PHP pour utiliser PHP 7 au lieu de PHP 5", "migration_description_0005_postgresql_9p4_to_9p6": "Migration des bases de données de PostgreSQL 9.4 vers PostgreSQL 9.6", "migration_0005_postgresql_94_not_installed": "PostgreSQL n’a pas été installé sur votre système. Rien à faire !", "migration_0005_postgresql_96_not_installed": "PostgreSQL 9.4 a été trouvé et installé, mais pas PostgreSQL 9.6 !? Quelque chose d’étrange a dû arriver à votre système… :(", @@ -541,7 +541,7 @@ "global_settings_setting_security_ssh_compatibility": "Compatibilité versus compromis sécuritaire pour le serveur SSH. Affecte les cryptogrammes (et d'autres aspects liés à la sécurité)", "global_settings_setting_security_postfix_compatibility": "Compatibilité versus compromis sécuritaire pour le serveur Postfix. Affecte les cryptogrammes (et d'autres aspects liés à la sécurité)", "migration_description_0009_decouple_regenconf_from_services": "Dissocier le mécanisme « regen-conf » des services", - "migration_description_0010_migrate_to_apps_json": "Supprimez les catalogues d'applications obsolètes et utilisez à la place la nouvelle liste unifiée 'apps.json' (obsolète, remplacée par la migration 13).", + "migration_description_0010_migrate_to_apps_json": "Supprimer les catalogues d'applications obsolètes afin d'utiliser la nouvelle liste unifiée 'apps.json' à la place (les anciens catalogues seront remplacés durant la migration 13)", "regenconf_file_kept_back": "Le fichier de configuration '{conf}' devait être supprimé par « regen-conf » (catégorie {category}) mais a été conservé.", "regenconf_updated": "La configuration a été mise à jour pour '{category}'", "regenconf_would_be_updated": "La configuration aurait dû être mise à jour pour la catégorie '{category}'", @@ -589,7 +589,7 @@ "log_user_permission_add": "Mettre à jour l'autorisation pour '{}'", "log_user_permission_remove": "Mettre à jour l'autorisation pour '{}'", "mailbox_disabled": "La boîte aux lettres est désactivée pour l'utilisateur {user:s}", - "app_action_broke_system": "Cette action semble avoir cassé des services important : {services}", + "app_action_broke_system": "Cette action semble avoir cassé des services importants : {services}", "apps_already_up_to_date": "Toutes les applications sont déjà à jour", "app_upgrade_stopped": "La mise à niveau de toutes les applications s'est arrêtée pour éviter tout dommage, car une application n'a pas pu être mise à niveau.", "migration_0011_create_group": "Créer un groupe pour chaque utilisateur…", @@ -700,7 +700,7 @@ "diagnosis_dns_good_conf": "Bonne configuration DNS pour le domaine {domain} (catégorie {category})", "diagnosis_dns_bad_conf": "Configuration DNS incorrecte/manquante pour le domaine {domain} (catégorie {category})", "diagnosis_dns_discrepancy": "Selon la configuration DNS recommandée, la valeur de l'enregistrement DNS de type {0} et nom {1} doit être {2} et non {3}.", - "diagnosis_services_bad_status": "Le service {service} est {status} :/", + "diagnosis_services_bad_status": "Le service {service} est {status} :-(", "diagnosis_services_good_status": "Le service {service} est {status} comme prévu !", "diagnosis_diskusage_verylow": "Le stockage {mountpoint} (sur le périphérique {device}) ne dispose que de {free_abs_GB} Go ({free_percent}%). Vous devriez vraiment envisager de nettoyer un peu d'espace.", "diagnosis_diskusage_low": "Le stockage {mountpoint} (sur le périphérique {device}) ne dispose que de {free_abs_GB} Go ({free_percent}%). Faites attention.", From 1b26675f18b8a6ab16e8964a4e3077df55e9b7f4 Mon Sep 17 00:00:00 2001 From: xaloc33 Date: Fri, 15 Nov 2019 21:34:25 +0000 Subject: [PATCH 08/10] Translated using Weblate (Catalan) Currently translated at 100.0% (596 of 596 strings) Translation: YunoHost/core Translate-URL: https://translate.yunohost.org/projects/yunohost/core/ca/ --- locales/ca.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/locales/ca.json b/locales/ca.json index 848838bda..26fd8c889 100644 --- a/locales/ca.json +++ b/locales/ca.json @@ -36,7 +36,7 @@ "app_unknown": "Aplicació desconeguda", "app_unsupported_remote_type": "El tipus remot utilitzat per l'aplicació no està suportat", "app_upgrade_app_name": "Actualitzant {app}…", - "app_upgrade_failed": "No s'ha pogut actualitzar {app:s}", + "app_upgrade_failed": "No s'ha pogut actualitzar {app:s}: {error}", "app_upgrade_some_app_failed": "No s'han pogut actualitzar algunes aplicacions", "app_upgraded": "S'ha actualitzat {app:s}", "appslist_corrupted_json": "No s'han pogut carregar les llistes d'aplicacions. Sembla que {filename:s} està danyat.", @@ -703,5 +703,6 @@ "diagnosis_mail_ougoing_port_25_ok": "El port de sortida 25 no està bloquejat i els correus es poden enviar a altres servidors.", "diagnosis_mail_ougoing_port_25_blocked": "Sembla que el port de sortida 25 està bloquejat. Hauríeu d'intentar desbloquejar-lo al panell de configuració del proveïdor d'accés a internet (o allotjador). Mentrestant, el servidor no podrà enviar correus a altres servidors.", "diagnosis_description_mail": "Correu electrònic", - "migration_description_0013_futureproof_apps_catalog_system": "Migrar al nou sistema de catàleg d'aplicacions resistent al pas del temps" + "migration_description_0013_futureproof_apps_catalog_system": "Migrar al nou sistema de catàleg d'aplicacions resistent al pas del temps", + "app_upgrade_script_failed": "Hi ha hagut un error en el script d'actualització de l'aplicació" } From 7fa61b49f403e8894622640fb1f5c5d47495521c Mon Sep 17 00:00:00 2001 From: Alexandre Aubin Date: Sat, 23 Nov 2019 19:27:18 +0100 Subject: [PATCH 09/10] Typo fix lost in the merges... --- src/yunohost/permission.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/yunohost/permission.py b/src/yunohost/permission.py index dabd2b054..ad06c0487 100644 --- a/src/yunohost/permission.py +++ b/src/yunohost/permission.py @@ -464,9 +464,9 @@ def _update_ldap_group_permission(permission, allowed, sync_perm=True): effectively_removed_users = old_allowed_users - new_allowed_users if effectively_added_users: - hook_callback('post_app_addaccess', args=[app, ','.join(effectively_added_users, sub_permission)]) + hook_callback('post_app_addaccess', args=[app, ','.join(effectively_added_users), sub_permission]) if effectively_removed_users: - hook_callback('post_app_removeaccess', args=[app, ','.join(effectively_removed_users, sub_permission)]) + hook_callback('post_app_removeaccess', args=[app, ','.join(effectively_removed_users), sub_permission]) return new_permission From e3474f1a8ce88d6f59034e1aefa8068f698a621c Mon Sep 17 00:00:00 2001 From: Alexandre Aubin Date: Sat, 23 Nov 2019 19:32:51 +0100 Subject: [PATCH 10/10] Update changelog for 3.7.0.3 --- debian/changelog | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/debian/changelog b/debian/changelog index e7926cd95..f8a83d0b3 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,11 @@ +yunohost (3.7.0.3) testing; urgency=low + + - [mod] Some refactoring for permissions create/update/reset (#837) + - [fix] Fix some edge cases for ynh_secure_remove and ynh_clean_check_starting + - [i18n] Improve translations for French, Catalan + + -- Alexandre Aubin Sat, 23 Nov 2019 19:30:00 +0000 + yunohost (3.7.0.2) testing; urgency=low - [fix] Make sure the users actually exists when migrating legacy custom permissions