mirror of
https://github.com/YunoHost/yunohost.git
synced 2024-09-03 20:06:10 +02:00
Propagate changes on app helpers + tests
This commit is contained in:
parent
ebf2fb9a14
commit
2b51d247fb
3 changed files with 47 additions and 32 deletions
|
@ -232,11 +232,24 @@ ynh_webpath_register () {
|
||||||
|
|
||||||
# Create a new permission for the app
|
# Create a new permission for the app
|
||||||
#
|
#
|
||||||
|
# example: ynh_permission_create --permission admin --urls /admin
|
||||||
|
#
|
||||||
# usage: ynh_permission_create --permission "permission" [--urls "url" ["url" ...]]
|
# usage: ynh_permission_create --permission "permission" [--urls "url" ["url" ...]]
|
||||||
# | arg: permission - the name for the permission (by default a permission named "main" already exist)
|
# | arg: permission - the name for the permission (by default a permission named "main" already exist)
|
||||||
# | arg: urls - (optional) a list of FULL urls for the permission (e.g. domain.tld/apps/admin)
|
# | arg: urls - (optional) a list of FULL urls for the permission (e.g. domain.tld/apps/admin)
|
||||||
|
# | arg: urls - (optional) a list of urls to specify for the permission.
|
||||||
|
#
|
||||||
|
# Urls are assumed to be relative to the app domain/path if they start with '/'.
|
||||||
|
# For example:
|
||||||
|
# / -> domain.tld/app
|
||||||
|
# /admin -> domain.tld/app/admin
|
||||||
|
# domain.tld/app/api -> domain.tld/app/api
|
||||||
|
#
|
||||||
|
# Urls can be treated as regexes when they start with "re:".
|
||||||
|
# For example:
|
||||||
|
# re:/api/[A-Z]*$ -> domain.tld/app/api/[A-Z]*$
|
||||||
|
# re:domain.tld/app/api/[A-Z]*$ -> domain.tld/app/api/[A-Z]*$
|
||||||
#
|
#
|
||||||
# example: ynh_permission_create --permission admin --urls domain.tld/blog/admin
|
|
||||||
ynh_permission_create() {
|
ynh_permission_create() {
|
||||||
declare -Ar args_array=( [p]=permission= [u]=urls= )
|
declare -Ar args_array=( [p]=permission= [u]=urls= )
|
||||||
local permission
|
local permission
|
||||||
|
@ -251,10 +264,11 @@ ynh_permission_create() {
|
||||||
|
|
||||||
# Remove a permission for the app (note that when the app is removed all permission is automatically removed)
|
# Remove a permission for the app (note that when the app is removed all permission is automatically removed)
|
||||||
#
|
#
|
||||||
|
# example: ynh_permission_delete --permission editors
|
||||||
|
#
|
||||||
# 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)
|
||||||
#
|
#
|
||||||
# example: ynh_permission_delete --permission editors
|
|
||||||
ynh_permission_delete() {
|
ynh_permission_delete() {
|
||||||
declare -Ar args_array=( [p]=permission= )
|
declare -Ar args_array=( [p]=permission= )
|
||||||
local permission
|
local permission
|
||||||
|
@ -267,8 +281,8 @@ ynh_permission_delete() {
|
||||||
#
|
#
|
||||||
# usage: ynh_permission_urls --permission "permission" --add "url" ["url" ...] --remove "url" ["url" ...]
|
# usage: ynh_permission_urls --permission "permission" --add "url" ["url" ...] --remove "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: add - (optional) a list of FULL urls to add to the permission (e.g. domain.tld/apps/admin)
|
# | arg: add - (optional) a list of urls to add to the permission (see permission_create for details regarding their format)
|
||||||
# | arg: remove - (optional) a list of FULL urls to remove from the permission (e.g. other.tld/apps/admin)
|
# | arg: remove - (optional) a list of urls to remove from the permission (see permission_create for details regarding their format)
|
||||||
#
|
#
|
||||||
ynh_permission_urls() {
|
ynh_permission_urls() {
|
||||||
declare -Ar args_array=([p]=permission= [a]=add= [r]=remove=)
|
declare -Ar args_array=([p]=permission= [a]=add= [r]=remove=)
|
||||||
|
|
|
@ -529,9 +529,9 @@ def test_backup_and_restore_permission_app():
|
||||||
assert "permissions_app.main" in res
|
assert "permissions_app.main" in res
|
||||||
assert "permissions_app.admin" in res
|
assert "permissions_app.admin" in res
|
||||||
assert "permissions_app.dev" in res
|
assert "permissions_app.dev" in res
|
||||||
assert res['permissions_app.main']['urls'] == [maindomain + "/urlpermissionapp"]
|
assert res['permissions_app.main']['urls'] == ["/"]
|
||||||
assert res['permissions_app.admin']['urls'] == [maindomain + "/urlpermissionapp/admin"]
|
assert res['permissions_app.admin']['urls'] == ["/admin"]
|
||||||
assert res['permissions_app.dev']['urls'] == [maindomain + "/urlpermissionapp/dev"]
|
assert res['permissions_app.dev']['urls'] == ["/dev"]
|
||||||
|
|
||||||
assert res['permissions_app.main']['allowed'] == ["all_users"]
|
assert res['permissions_app.main']['allowed'] == ["all_users"]
|
||||||
assert res['permissions_app.admin']['allowed'] == ["alice"]
|
assert res['permissions_app.admin']['allowed'] == ["alice"]
|
||||||
|
@ -543,9 +543,9 @@ def test_backup_and_restore_permission_app():
|
||||||
assert "permissions_app.main" in res
|
assert "permissions_app.main" in res
|
||||||
assert "permissions_app.admin" in res
|
assert "permissions_app.admin" in res
|
||||||
assert "permissions_app.dev" in res
|
assert "permissions_app.dev" in res
|
||||||
assert res['permissions_app.main']['urls'] == [maindomain + "/urlpermissionapp"]
|
assert res['permissions_app.main']['urls'] == ["/"]
|
||||||
assert res['permissions_app.admin']['urls'] == [maindomain + "/urlpermissionapp/admin"]
|
assert res['permissions_app.admin']['urls'] == ["/admin"]
|
||||||
assert res['permissions_app.dev']['urls'] == [maindomain + "/urlpermissionapp/dev"]
|
assert res['permissions_app.dev']['urls'] == ["/dev"]
|
||||||
|
|
||||||
assert res['permissions_app.main']['allowed'] == ["all_users"]
|
assert res['permissions_app.main']['allowed'] == ["all_users"]
|
||||||
assert res['permissions_app.admin']['allowed'] == ["alice"]
|
assert res['permissions_app.admin']['allowed'] == ["alice"]
|
||||||
|
|
|
@ -31,7 +31,7 @@ def setup_function(function):
|
||||||
|
|
||||||
user_create("alice", "Alice", "White", "alice@" + maindomain, dummy_password)
|
user_create("alice", "Alice", "White", "alice@" + maindomain, dummy_password)
|
||||||
user_create("bob", "Bob", "Snow", "bob@" + maindomain, dummy_password)
|
user_create("bob", "Bob", "Snow", "bob@" + maindomain, dummy_password)
|
||||||
permission_create("wiki.main", urls=[maindomain + "/wiki"], sync_perm=False)
|
permission_create("wiki.main", urls=["/"], sync_perm=False)
|
||||||
permission_create("blog.main", sync_perm=False)
|
permission_create("blog.main", sync_perm=False)
|
||||||
user_permission_update("blog.main", remove="all_users", add="alice")
|
user_permission_update("blog.main", remove="all_users", add="alice")
|
||||||
|
|
||||||
|
@ -198,7 +198,7 @@ def test_permission_list():
|
||||||
assert res['blog.main']['allowed'] == ["alice"]
|
assert res['blog.main']['allowed'] == ["alice"]
|
||||||
assert set(res['wiki.main']['corresponding_users']) == set(["alice", "bob"])
|
assert set(res['wiki.main']['corresponding_users']) == set(["alice", "bob"])
|
||||||
assert res['blog.main']['corresponding_users'] == ["alice"]
|
assert res['blog.main']['corresponding_users'] == ["alice"]
|
||||||
assert res['wiki.main']['urls'] == [maindomain + "/wiki"]
|
assert res['wiki.main']['urls'] == ["/"]
|
||||||
|
|
||||||
#
|
#
|
||||||
# Create - Remove functions
|
# Create - Remove functions
|
||||||
|
@ -322,37 +322,37 @@ def test_permission_update_permission_that_doesnt_exist():
|
||||||
# Permission url management
|
# Permission url management
|
||||||
|
|
||||||
def test_permission_add_url():
|
def test_permission_add_url():
|
||||||
permission_urls("blog.main", add=[maindomain + "/testA"])
|
permission_urls("blog.main", add=["/testA"])
|
||||||
|
|
||||||
res = user_permission_list(full=True)['permissions']
|
res = user_permission_list(full=True)['permissions']
|
||||||
assert res["blog.main"]["urls"] == [maindomain + "/testA"]
|
assert res["blog.main"]["urls"] == ["/testA"]
|
||||||
|
|
||||||
def test_permission_add_second_url():
|
def test_permission_add_another_url():
|
||||||
permission_urls("wiki.main", add=[maindomain + "/testA"])
|
permission_urls("wiki.main", add=["/testA"])
|
||||||
|
|
||||||
res = user_permission_list(full=True)['permissions']
|
res = user_permission_list(full=True)['permissions']
|
||||||
assert set(res["wiki.main"]["urls"]) == set([maindomain + "/testA", maindomain + "/wiki"])
|
assert set(res["wiki.main"]["urls"]) == set(["/", "/testA"])
|
||||||
|
|
||||||
def test_permission_remove_url():
|
def test_permission_remove_url():
|
||||||
permission_urls("wiki.main", remove=[maindomain + "/wiki"])
|
permission_urls("wiki.main", remove=["/"])
|
||||||
|
|
||||||
res = user_permission_list(full=True)['permissions']
|
res = user_permission_list(full=True)['permissions']
|
||||||
assert res["wiki.main"]["urls"] == []
|
assert res["wiki.main"]["urls"] == []
|
||||||
|
|
||||||
def test_permission_add_url_already_added():
|
def test_permission_add_url_already_added():
|
||||||
res = user_permission_list(full=True)['permissions']
|
res = user_permission_list(full=True)['permissions']
|
||||||
assert res["wiki.main"]["urls"] == [maindomain + "/wiki"]
|
assert res["wiki.main"]["urls"] == ["/"]
|
||||||
|
|
||||||
permission_urls("wiki.main", add=[maindomain + "/wiki"])
|
permission_urls("wiki.main", add=["/"])
|
||||||
|
|
||||||
res = user_permission_list(full=True)['permissions']
|
res = user_permission_list(full=True)['permissions']
|
||||||
assert res["wiki.main"]["urls"] == [maindomain + "/wiki"]
|
assert res["wiki.main"]["urls"] == ["/"]
|
||||||
|
|
||||||
def test_permission_remove_url_not_added():
|
def test_permission_remove_url_not_added():
|
||||||
permission_urls("wiki.main", remove=[maindomain + "/doesnt_exist"])
|
permission_urls("wiki.main", remove=["/doesnt_exist"])
|
||||||
|
|
||||||
res = user_permission_list(full=True)['permissions']
|
res = user_permission_list(full=True)['permissions']
|
||||||
assert res['wiki.main']['urls'] == [maindomain + "/wiki"]
|
assert res['wiki.main']['urls'] == ["/"]
|
||||||
|
|
||||||
#
|
#
|
||||||
# Application interaction
|
# Application interaction
|
||||||
|
@ -366,9 +366,9 @@ def test_permission_app_install():
|
||||||
assert "permissions_app.main" in res
|
assert "permissions_app.main" in res
|
||||||
assert "permissions_app.admin" in res
|
assert "permissions_app.admin" in res
|
||||||
assert "permissions_app.dev" in res
|
assert "permissions_app.dev" in res
|
||||||
assert res['permissions_app.main']['urls'] == [maindomain + "/urlpermissionapp"]
|
assert res['permissions_app.main']['urls'] == ["/"]
|
||||||
assert res['permissions_app.admin']['urls'] == [maindomain + "/urlpermissionapp/admin"]
|
assert res['permissions_app.admin']['urls'] == ["/admin"]
|
||||||
assert res['permissions_app.dev']['urls'] == [maindomain + "/urlpermissionapp/dev"]
|
assert res['permissions_app.dev']['urls'] == ["/dev"]
|
||||||
|
|
||||||
assert res['permissions_app.main']['allowed'] == ["all_users"]
|
assert res['permissions_app.main']['allowed'] == ["all_users"]
|
||||||
assert set(res['permissions_app.main']['corresponding_users']) == set(["alice", "bob"])
|
assert set(res['permissions_app.main']['corresponding_users']) == set(["alice", "bob"])
|
||||||
|
@ -399,17 +399,18 @@ def test_permission_app_change_url():
|
||||||
app_install("./tests/apps/permissions_app_ynh",
|
app_install("./tests/apps/permissions_app_ynh",
|
||||||
args="domain=%s&path=%s&admin=%s" % (maindomain, "/urlpermissionapp", "alice"), force=True)
|
args="domain=%s&path=%s&admin=%s" % (maindomain, "/urlpermissionapp", "alice"), force=True)
|
||||||
|
|
||||||
|
# FIXME : should rework this test to look for differences in the generated app map / app tiles ...
|
||||||
res = user_permission_list(full=True)['permissions']
|
res = user_permission_list(full=True)['permissions']
|
||||||
assert res['permissions_app.main']['urls'] == [maindomain + "/urlpermissionapp"]
|
assert res['permissions_app.main']['urls'] == ["/"]
|
||||||
assert res['permissions_app.admin']['urls'] == [maindomain + "/urlpermissionapp/admin"]
|
assert res['permissions_app.admin']['urls'] == ["/admin"]
|
||||||
assert res['permissions_app.dev']['urls'] == [maindomain + "/urlpermissionapp/dev"]
|
assert res['permissions_app.dev']['urls'] == ["/dev"]
|
||||||
|
|
||||||
app_change_url("permissions_app", maindomain, "/newchangeurl")
|
app_change_url("permissions_app", maindomain, "/newchangeurl")
|
||||||
|
|
||||||
res = user_permission_list(full=True)['permissions']
|
res = user_permission_list(full=True)['permissions']
|
||||||
assert res['permissions_app.main']['urls'] == [maindomain + "/newchangeurl"]
|
assert res['permissions_app.main']['urls'] == ["/"]
|
||||||
assert res['permissions_app.admin']['urls'] == [maindomain + "/newchangeurl/admin"]
|
assert res['permissions_app.admin']['urls'] == ["/admin"]
|
||||||
assert res['permissions_app.dev']['urls'] == [maindomain + "/newchangeurl/dev"]
|
assert res['permissions_app.dev']['urls'] == ["/dev"]
|
||||||
|
|
||||||
|
|
||||||
def test_permission_app_propagation_on_ssowat():
|
def test_permission_app_propagation_on_ssowat():
|
||||||
|
|
Loading…
Add table
Reference in a new issue