From a6d68c76c4eaa998db3fa77e7ece0c811e85e8ad Mon Sep 17 00:00:00 2001 From: Alexandre Aubin Date: Wed, 11 Sep 2019 01:31:22 +0200 Subject: [PATCH] permission_update -> permission_urls (+ tweak the helper name) so that it's more differentiable from user_permission_update --- data/helpers.d/setting | 10 +++++----- src/yunohost/permission.py | 18 ++++++++++++++++-- 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/data/helpers.d/setting b/data/helpers.d/setting index e002afa57..e6311fc1f 100644 --- a/data/helpers.d/setting +++ b/data/helpers.d/setting @@ -268,18 +268,18 @@ ynh_permission_remove() { # Add a path managed by the SSO # -# usage: ynh_permission_add_path --app "app" --permission "permission" --url "url" ["url" ...] +# usage: ynh_permission_add_url --app "app" --permission "permission" --url "url" ["url" ...] # | arg: app - the application id # | arg: permission - the name for the permission # | arg: url - the FULL url for the the permission (ex domain.tld/apps/admin) -ynh_permission_add_path() { +ynh_permission_add_url() { declare -Ar args_array=( [a]=app= [p]=permission= [u]=url= ) local app local permission local url ynh_handle_getopts_args "$@" - yunohost tools shell -c "from yunohost.permission import permission_update; permission_update('$app', '$permission', add_url=['${url//';'/"','"}'], sync_perm=False)" + yunohost tools shell -c "from yunohost.permission import permission_urls; permission_urls('$app', '$permission', add_url=['${url//';'/"','"}'], sync_perm=False)" } # Remove a path managed by the SSO @@ -288,12 +288,12 @@ ynh_permission_add_path() { # | arg: app - the application id # | arg: permission - the name for the permission # | arg: url - the FULL url for the the permission (ex domain.tld/apps/admin) -ynh_permission_del_path() { +ynh_permission_remove_url() { declare -Ar args_array=( [a]=app= [p]=permission= [u]=url= ) local app local permission local url ynh_handle_getopts_args "$@" - yunohost tools shell -c "from yunohost.permission import permission_update; permission_update('$app', '$permission', remove_url=['${url//';'/"','"}'], sync_perm=False)" + yunohost tools shell -c "from yunohost.permission import permission_urls; permission_urls('$app', '$permission', remove_url=['${url//';'/"','"}'], sync_perm=False)" } diff --git a/src/yunohost/permission.py b/src/yunohost/permission.py index 3f9131018..1a5465674 100644 --- a/src/yunohost/permission.py +++ b/src/yunohost/permission.py @@ -35,6 +35,12 @@ from yunohost.log import is_unit_operation logger = getActionLogger('yunohost.user') +# +# +# The followings are the methods exposed through the "yunohost user permission" interface +# +# + def user_permission_list(app=None, permission=None, username=None, group=None): """ @@ -315,6 +321,14 @@ def user_permission_clear(operation_logger, app=[], permission=None, sync_perm=T return user_permission_list(app, permission) +# +# +# The followings methods are *not* directly exposed. +# They are used to create/delete the permissions (e.g. during app install/remove) +# and by some app helpers to possibly add additional permissions and tweak the urls +# +# + @is_unit_operation(['permission', 'app']) def permission_create(operation_logger, app, permission, urls=None, default_allow=True, sync_perm=True): @@ -374,9 +388,9 @@ def permission_create(operation_logger, app, permission, urls=None, default_allo @is_unit_operation(['permission', 'app']) -def permission_update(operation_logger, app, permission, add_url=None, remove_url=None, sync_perm=True): +def permission_urls(operation_logger, app, permission, add_url=None, remove_url=None, sync_perm=True): """ - Update a permission for a specific application + Update urls related to a permission for a specific application Keyword argument: app -- an application OR sftp, xmpp (metronome), mail