Merge pull request #840 from kay0u/permissions-helpers

[enh] Improve permission helpers
This commit is contained in:
Alexandre Aubin 2019-11-15 13:56:14 +01:00 committed by GitHub
commit 5fbf567448
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -257,6 +257,7 @@ ynh_webpath_register () {
# re:/api/[A-Z]*$ -> domain.tld/app/api/[A-Z]*$ # re:/api/[A-Z]*$ -> domain.tld/app/api/[A-Z]*$
# re:domain.tld/app/api/[A-Z]*$ -> domain.tld/app/api/[A-Z]*$ # re:domain.tld/app/api/[A-Z]*$ -> domain.tld/app/api/[A-Z]*$
# #
# Requires YunoHost version 3.7.0 or higher.
ynh_permission_create() { ynh_permission_create() {
declare -Ar args_array=( [p]=permission= [u]=url= [a]=allowed= ) declare -Ar args_array=( [p]=permission= [u]=url= [a]=allowed= )
local permission local permission
@ -284,6 +285,7 @@ ynh_permission_create() {
# usage: ynh_permission_delete --permission "permission" # usage: ynh_permission_delete --permission "permission"
# | arg: permission - the name for the permission (by default a permission named "main" is removed automatically when the app is removed) # | arg: permission - the name for the permission (by default a permission named "main" is removed automatically when the app is removed)
# #
# Requires YunoHost version 3.7.0 or higher.
ynh_permission_delete() { ynh_permission_delete() {
declare -Ar args_array=( [p]=permission= ) declare -Ar args_array=( [p]=permission= )
local permission local permission
@ -292,12 +294,27 @@ ynh_permission_delete() {
yunohost tools shell -c "from yunohost.permission import permission_delete; permission_delete('$app.$permission', sync_perm=False)" yunohost tools shell -c "from yunohost.permission import permission_delete; permission_delete('$app.$permission', sync_perm=False)"
} }
# Check if a permission exists
#
# usage: ynh_permission_exists --permission=permission
# | arg: -p, --permission - the permission to check
#
# Requires YunoHost version 3.7.0 or higher.
ynh_permission_exists() {
declare -Ar args_array=( [p]=permission= )
local permission
ynh_handle_getopts_args "$@"
yunohost user permission list -s | grep -w -q "$app.$permission"
}
# Redefine the url associated to a permission # Redefine the url associated to a permission
# #
# usage: ynh_permission_url --permission "permission" --url "url" # usage: ynh_permission_url --permission "permission" --url "url"
# | arg: permission - the name for the permission (by default a permission named "main" is removed automatically when the app is removed) # | arg: permission - the name for the permission (by default a permission named "main" is removed automatically when the app is removed)
# | arg: url - (optional) URL for which access will be allowed/forbidden # | arg: url - (optional) URL for which access will be allowed/forbidden
# #
# Requires YunoHost version 3.7.0 or higher.
ynh_permission_url() { ynh_permission_url() {
declare -Ar args_array=([p]=permission= [u]=url=) declare -Ar args_array=([p]=permission= [u]=url=)
local permission local permission
@ -322,6 +339,7 @@ ynh_permission_url() {
# | arg: remove - the list of group or users to remove from the permission # | arg: remove - the list of group or users to remove from the permission
# #
# example: ynh_permission_update --permission admin --add samdoe --remove all_users # example: ynh_permission_update --permission admin --add samdoe --remove all_users
# Requires YunoHost version 3.7.0 or higher.
ynh_permission_update() { ynh_permission_update() {
declare -Ar args_array=( [p]=permission= [a]=add= [r]=remove= ) declare -Ar args_array=( [p]=permission= [a]=add= [r]=remove= )
local permission local permission