permission_add/remove becomes create/delete to be consistent with user and group create/delete. In the context of permissions, add/remove shall instead be related to adding/removing an existing permission for a user or group.

This commit is contained in:
Alexandre Aubin 2019-09-11 01:06:20 +02:00
parent 34df84e222
commit f60af2053f
6 changed files with 23 additions and 23 deletions

View file

@ -249,7 +249,7 @@ ynh_permission_create() {
if [[ -n ${urls:-} ]]; then
urls=",urls=['${urls//';'/"','"}']"
fi
yunohost tools shell -c "from yunohost.permission import permission_add; permission_add('$app', '$permission' ${defaultdisallow:-} ${urls:-}, sync_perm=False)"
yunohost tools shell -c "from yunohost.permission import permission_create; permission_create('$app', '$permission' ${defaultdisallow:-} ${urls:-}, sync_perm=False)"
}
# Remove a permission for the app (note that when the app is removed all permission is automatically removed)
@ -263,7 +263,7 @@ ynh_permission_remove() {
local permission
ynh_handle_getopts_args "$@"
yunohost tools shell -c "from yunohost.permission import permission_remove; permission_remove('$app', '$permission', sync_perm=False)"
yunohost tools shell -c "from yunohost.permission import permission_delete; permission_delete('$app', '$permission', sync_perm=False)"
}
# Add a path managed by the SSO

View file

@ -738,7 +738,7 @@ def app_install(operation_logger, app, label=None, args=None, no_remove_on_failu
from yunohost.utils.ldap import _get_ldap_interface
from yunohost.hook import hook_add, hook_remove, hook_exec, hook_callback
from yunohost.log import OperationLogger
from yunohost.permission import permission_add, permission_update, permission_remove, permission_sync_to_user
from yunohost.permission import permission_create, permission_update, permission_delete, permission_sync_to_user
ldap = _get_ldap_interface()
# Fetch or extract sources
@ -875,7 +875,7 @@ def app_install(operation_logger, app, label=None, args=None, no_remove_on_failu
# Create permission before the install (useful if the install script redefine the permission)
# Note that sync_perm is disabled to avoid triggering a whole bunch of code and messages
# can't be sure that we don't have one case when it's needed
permission_add(app=app_instance_name, permission="main", sync_perm=False)
permission_create(app=app_instance_name, permission="main", sync_perm=False)
# Execute the app install script
install_retcode = 1
@ -914,7 +914,7 @@ def app_install(operation_logger, app, label=None, args=None, no_remove_on_failu
filter='(&(objectclass=permissionYnh)(cn=*.%s))' % app_instance_name, attrs=['cn'])
permission_list = [p['cn'][0] for p in result]
for l in permission_list:
permission_remove(app_instance_name, l.split('.')[0], force=True)
permission_delete(app_instance_name, l.split('.')[0], force=True)
if remove_retcode != 0:
msg = m18n.n('app_not_properly_removed',
@ -980,7 +980,7 @@ def app_remove(operation_logger, app):
"""
from yunohost.utils.ldap import _get_ldap_interface
from yunohost.hook import hook_exec, hook_remove, hook_callback
from yunohost.permission import permission_remove, permission_sync_to_user
from yunohost.permission import permission_delete, permission_sync_to_user
if not _is_installed(app):
raise YunohostError('app_not_installed', app=app, all_apps=_get_all_installed_apps_id())
@ -1031,7 +1031,7 @@ def app_remove(operation_logger, app):
filter='(&(objectclass=permissionYnh)(cn=*.%s))' % app, attrs=['cn'])
permission_list = [p['cn'][0] for p in result]
for l in permission_list:
permission_remove(app, l.split('.')[0], force=True, sync_perm=False)
permission_delete(app, l.split('.')[0], force=True, sync_perm=False)
permission_sync_to_user()

View file

@ -1303,7 +1303,7 @@ class RestoreManager():
"""
from moulinette.utils.filesystem import read_ldif
from yunohost.user import user_group_list
from yunohost.permission import permission_remove
from yunohost.permission import permission_delete
from yunohost.utils.ldap import _get_ldap_interface
ldap = _get_ldap_interface()
@ -1441,7 +1441,7 @@ class RestoreManager():
filter='(&(objectclass=permissionYnh)(cn=*.%s))' % app_instance_name, attrs=['cn'])
permission_list = [p['cn'][0] for p in result]
for l in permission_list:
permission_remove(app_instance_name, l.split('.')[0], force=True)
permission_delete(app_instance_name, l.split('.')[0], force=True)
# TODO Cleaning app hooks
else:

View file

@ -10,7 +10,7 @@ from yunohost.tools import Migration
from yunohost.user import user_group_create, user_group_update
from yunohost.app import app_setting, app_list
from yunohost.regenconf import regen_conf
from yunohost.permission import permission_add, permission_sync_to_user
from yunohost.permission import permission_create, permission_sync_to_user
from yunohost.user import user_permission_add
logger = getActionLogger('yunohost.migration')
@ -85,7 +85,7 @@ class MyMigration(Migration):
domain = app_setting(app, 'domain')
urls = [domain + path] if domain and path else None
permission_add(app, permission='main', urls=urls, default_allow=True, sync_perm=False)
permission_create(app, permission='main', urls=urls, default_allow=True, sync_perm=False)
if permission:
allowed_group = permission.split(',')
user_permission_add([app], permission='main', group=allowed_group, sync_perm=False)

View file

@ -317,7 +317,7 @@ def user_permission_clear(operation_logger, app=[], permission=None, sync_perm=T
@is_unit_operation(['permission', 'app'])
def permission_add(operation_logger, app, permission, urls=None, default_allow=True, sync_perm=True):
def permission_create(operation_logger, app, permission, urls=None, default_allow=True, sync_perm=True):
"""
Create a new permission for a specific application
@ -431,7 +431,7 @@ def permission_update(operation_logger, app, permission, add_url=None, remove_ur
@is_unit_operation(['permission', 'app'])
def permission_remove(operation_logger, app, permission, force=False, sync_perm=True):
def permission_delete(operation_logger, app, permission, force=False, sync_perm=True):
"""
Remove a permission for a specific application

View file

@ -3,7 +3,7 @@ import pytest
from moulinette.core import MoulinetteError
from yunohost.app import app_install, app_remove, app_change_url, app_list
from yunohost.user import user_list, user_create, user_permission_list, user_delete, user_group_list, user_group_delete, user_permission_add, user_permission_remove, user_permission_clear
from yunohost.permission import permission_add, permission_update, permission_remove
from yunohost.permission import permission_create, permission_update, permission_delete
from yunohost.domain import _get_maindomain
from yunohost.utils.error import YunohostError
@ -21,15 +21,15 @@ def clean_user_groups_permission():
for a, per in user_permission_list()['permissions'].items():
if a in ['wiki', 'blog', 'site']:
for p in per:
permission_remove(a, p, force=True, sync_perm=False)
permission_delete(a, p, force=True, sync_perm=False)
def setup_function(function):
clean_user_groups_permission()
user_create("alice", "Alice", "White", "alice@" + maindomain, "test123Ynh")
user_create("bob", "Bob", "Snow", "bob@" + maindomain, "test123Ynh")
permission_add("wiki", "main", [maindomain + "/wiki"], sync_perm=False)
permission_add("blog", "main", sync_perm=False)
permission_create("wiki", "main", [maindomain + "/wiki"], sync_perm=False)
permission_create("blog", "main", sync_perm=False)
user_permission_add(["blog"], "main", group="alice")
@ -177,7 +177,7 @@ def test_list_permission():
#
def test_add_permission_1():
permission_add("site", "test")
permission_create("site", "test")
res = user_permission_list()['permissions']
assert "site" in res
@ -186,7 +186,7 @@ def test_add_permission_1():
assert set(["alice", "bob"]) == set(res['site']['test']['allowed_users'])
def test_add_permission_2():
permission_add("site", "main", default_allow=False)
permission_create("site", "main", default_allow=False)
res = user_permission_list()['permissions']
assert "site" in res
@ -195,7 +195,7 @@ def test_add_permission_2():
assert [] == res['site']['main']['allowed_users']
def test_remove_permission():
permission_remove("wiki", "main", force=True)
permission_delete("wiki", "main", force=True)
res = user_permission_list()['permissions']
assert "wiki" not in res
@ -207,12 +207,12 @@ def test_remove_permission():
def test_add_bad_permission():
# Create permission with same name
with pytest.raises(YunohostError):
permission_add("wiki", "main")
permission_create("wiki", "main")
def test_remove_bad_permission():
# Remove not existant permission
with pytest.raises(MoulinetteError):
permission_remove("non_exit", "main", force=True)
permission_delete("non_exit", "main", force=True)
res = user_permission_list()['permissions']
assert "wiki" in res
@ -226,7 +226,7 @@ def test_remove_bad_permission():
def test_remove_main_permission():
with pytest.raises(YunohostError):
permission_remove("blog", "main")
permission_delete("blog", "main")
res = user_permission_list()['permissions']
assert "mail" in res