def test_user_permissions_on_group_with_recursive_repo_mode_for_default_user(): # set permission to g0/g0_1 recursive repos only mode, all children including # other repos should have this permission now set, inner groups are excluded! recursive = 'repos' group = 'g0/g0_1' perm = 'group.none' default_user_id = User.get_default_user().user_id permissions_setup_func(group, perm, recursive=recursive, user_id=default_user_id) # change default to get perms for default user _get_repo_perms = functools.partial(_get_perms, key='repositories', test_u1_id=default_user_id) _get_group_perms = functools.partial(_get_perms, key='repositories_groups', test_u1_id=default_user_id) repo_items = [x for x in _get_repo_perms(group, recursive)] items = [x for x in _get_group_perms(group, recursive)] _check_expected_count(items, repo_items, expected_count(group, True)) for name, perm in repo_items: yield check_tree_perms, name, perm, group, 'repository.none' for name, perm in items: # permission is set with repos only mode, but we also change the permission # on the group we trigger the apply to children from, thus we need # to change its permission check old_perm = 'group.read' if name == group: old_perm = perm yield check_tree_perms, name, perm, group, old_perm
def test_user_permissions_on_group_with_recursive_mode_for_default_user(): # set permission to g0 recursive mode, all children including # other repos and groups should have this permission now set ! recursive = 'all' group = 'g0' default_user_id = kallithea.DEFAULT_USER_ID permissions_setup_func(group, 'group.write', recursive=recursive, user_id=default_user_id) # change default to get perms for default user _get_repo_perms = functools.partial(_get_perms, key='repositories', test_u1_id=default_user_id) _get_group_perms = functools.partial(_get_perms, key='repositories_groups', test_u1_id=default_user_id) repo_items = [x for x in _get_repo_perms(group, recursive)] items = [x for x in _get_group_perms(group, recursive)] _check_expected_count(items, repo_items, expected_count(group, True)) for name, perm in repo_items: # default user permissions do not "recurse into" private repos is_private = Repository.get_by_repo_name(name).private check_tree_perms( name, perm, group, 'repository.none' if is_private else 'repository.write') for name, perm in items: check_tree_perms(name, perm, group, 'group.write')
def test_user_permissions_on_group_with_recursive_mode_for_default_user(): # set permission to g0 recursive mode, all children including # other repos and groups should have this permission now set ! recursive = 'all' group = u'g0' default_user_id = User.get_default_user().user_id permissions_setup_func(group, 'group.write', recursive=recursive, user_id=default_user_id) # change default to get perms for default user _get_repo_perms = functools.partial(_get_perms, key='repositories', test_u1_id=default_user_id) _get_group_perms = functools.partial(_get_perms, key='repositories_groups', test_u1_id=default_user_id) repo_items = [x for x in _get_repo_perms(group, recursive)] items = [x for x in _get_group_perms(group, recursive)] _check_expected_count(items, repo_items, expected_count(group, True)) for name, perm in repo_items: # default user permissions do not "recurse into" private repos is_private = Repository.get_by_repo_name(name).private check_tree_perms(name, perm, group, 'repository.none' if is_private else 'repository.write') for name, perm in items: check_tree_perms(name, perm, group, 'group.write')
def test_user_permissions_on_group_with_recursive_group_mode_for_default_user( ): # set permission to g0/g0_1 with recursive groups only mode, all children including # other groups should have this permission now set. repositories should # remain intact as we use groups only mode ! recursive = 'groups' group = 'g0/g0_1' default_user_id = kallithea.DEFAULT_USER_ID permissions_setup_func(group, 'group.write', recursive=recursive, user_id=default_user_id) # change default to get perms for default user _get_repo_perms = functools.partial(_get_perms, key='repositories', test_u1_id=default_user_id) _get_group_perms = functools.partial(_get_perms, key='repositories_groups', test_u1_id=default_user_id) repo_items = [x for x in _get_repo_perms(group, recursive)] items = [x for x in _get_group_perms(group, recursive)] _check_expected_count(items, repo_items, expected_count(group, True)) for name, perm in repo_items: check_tree_perms(name, perm, group, 'repository.read') for name, perm in items: check_tree_perms(name, perm, group, 'group.write')
def test_user_permissions_on_group_with_recursive_mode_for_default_user(): # set permission to g0 recursive mode, all children including # other repos and groups should have this permission now set ! recursive = 'all' group = 'g0' default_user_id = User.get_default_user().user_id permissions_setup_func(group, 'group.write', recursive=recursive, user_id=default_user_id) # change default to get perms for default user _get_repo_perms = functools.partial(_get_perms, key='repositories', test_u1_id=default_user_id) _get_group_perms = functools.partial(_get_perms, key='repositories_groups', test_u1_id=default_user_id) repo_items = [x for x in _get_repo_perms(group, recursive)] items = [x for x in _get_group_perms(group, recursive)] _check_expected_count(items, repo_items, expected_count(group, True)) for name, perm in repo_items: yield check_tree_perms, name, perm, group, 'repository.write' for name, perm in items: yield check_tree_perms, name, perm, group, 'group.write'
def test_user_permissions_on_group_with_recursive_repo_mode_for_default_user(): # set permission to g0/g0_1 recursive repos only mode, all children including # other repos should have this permission now set, inner groups are excluded! recursive = 'repos' group = u'g0/g0_1' perm = 'group.none' default_user_id = User.get_default_user().user_id permissions_setup_func(group, perm, recursive=recursive, user_id=default_user_id) # change default to get perms for default user _get_repo_perms = functools.partial(_get_perms, key='repositories', test_u1_id=default_user_id) _get_group_perms = functools.partial(_get_perms, key='repositories_groups', test_u1_id=default_user_id) repo_items = [x for x in _get_repo_perms(group, recursive)] items = [x for x in _get_group_perms(group, recursive)] _check_expected_count(items, repo_items, expected_count(group, True)) for name, perm in repo_items: check_tree_perms(name, perm, group, 'repository.none') for name, perm in items: # permission is set with repos only mode, but we also change the permission # on the group we trigger the apply to children from, thus we need # to change its permission check old_perm = 'group.read' if name == group: old_perm = perm check_tree_perms(name, perm, group, old_perm)
def test_user_permissions_on_group_with_recursive_group_mode_for_default_user(): # set permission to g0/g0_1 with recursive groups only mode, all children including # other groups should have this permission now set. repositories should # remain intact as we use groups only mode ! recursive = 'groups' group = 'g0/g0_1' default_user_id = User.get_default_user().user_id permissions_setup_func(group, 'group.write', recursive=recursive, user_id=default_user_id) # change default to get perms for default user _get_repo_perms = functools.partial(_get_perms, key='repositories', test_u1_id=default_user_id) _get_group_perms = functools.partial(_get_perms, key='repositories_groups', test_u1_id=default_user_id) repo_items = [x for x in _get_repo_perms(group, recursive)] items = [x for x in _get_group_perms(group, recursive)] _check_expected_count(items, repo_items, expected_count(group, True)) for name, perm in repo_items: yield check_tree_perms, name, perm, group, 'repository.read' for name, perm in items: yield check_tree_perms, name, perm, group, 'group.write'
def test_user_permissions_on_group_with_recursive_group_mode_inner_group(): ## set permission to g0_3 group to none, with recursive mode for groups only recursive = 'groups' group = 'g0/g0_3' permissions_setup_func(group, 'group.none', recursive=recursive) repo_items = [x for x in _get_repo_perms(group, recursive)] items = [x for x in _get_group_perms(group, recursive)] _check_expected_count(items, repo_items, expected_count(group, True)) for name, perm in repo_items: yield check_tree_perms, name, perm, group, 'repository.read' for name, perm in items: yield check_tree_perms, name, perm, group, 'group.none'
def test_user_permissions_on_group_with_recursive_group_mode_inner_group(): ## set permission to g0_3 group to none, with recursive mode for groups only recursive = 'groups' group = 'g0/g0_3' permissions_setup_func(group, 'group.none', recursive=recursive) repo_items = [x for x in _get_repo_perms(group, recursive)] items = [x for x in _get_group_perms(group, recursive)] _check_expected_count(items, repo_items, expected_count(group, True)) for name, perm in repo_items: check_tree_perms(name, perm, group, 'repository.read') for name, perm in items: check_tree_perms(name, perm, group, 'group.none')
def test_user_permissions_on_group_with_recursive_mode_only_with_repos(): ## set permission to g0_3 group to none recursive = 'all' group = u'g0/g0_2' permissions_setup_func(group, 'group.admin', recursive=recursive) repo_items = [x for x in _get_repo_perms(group, recursive)] items = [x for x in _get_group_perms(group, recursive)] _check_expected_count(items, repo_items, expected_count(group, True)) for name, perm in repo_items: check_tree_perms(name, perm, group, 'repository.admin') for name, perm in items: check_tree_perms(name, perm, group, 'group.admin')
def test_user_permissions_on_group_with_recursive_mode_deepest(): ## set permission to g0_3 group to none recursive = 'all' group = 'g0/g0_1/g0_1_1' permissions_setup_func(group, 'group.write', recursive=recursive) repo_items = [x for x in _get_repo_perms(group, recursive)] items = [x for x in _get_group_perms(group, recursive)] _check_expected_count(items, repo_items, expected_count(group, True)) for name, perm in repo_items: yield check_tree_perms, name, perm, group, 'repository.write' for name, perm in items: yield check_tree_perms, name, perm, group, 'group.write'
def test_user_permissions_on_group_with_recursive_mode_deepest(): ## set permission to g0_3 group to none recursive = 'all' group = u'g0/g0_1/g0_1_1' permissions_setup_func(group, 'group.write', recursive=recursive) repo_items = [x for x in _get_repo_perms(group, recursive)] items = [x for x in _get_group_perms(group, recursive)] _check_expected_count(items, repo_items, expected_count(group, True)) for name, perm in repo_items: check_tree_perms(name, perm, group, 'repository.write') for name, perm in items: check_tree_perms(name, perm, group, 'group.write')
def test_user_permissions_on_group_with_recursive_mode_only_with_repos(): ## set permission to g0_3 group to none recursive = 'all' group = 'g0/g0_2' permissions_setup_func(group, 'group.admin', recursive=recursive) repo_items = [x for x in _get_repo_perms(group, recursive)] items = [x for x in _get_group_perms(group, recursive)] _check_expected_count(items, repo_items, expected_count(group, True)) for name, perm in repo_items: yield check_tree_perms, name, perm, group, 'repository.admin' for name, perm in items: yield check_tree_perms, name, perm, group, 'group.admin'
def test_user_permissions_on_group_with_recursive_mode_on_repo_groups(): # set permission to g0/g0_1 with recursive mode on just repository groups recursive = 'groups' group = u'g0/g0_1' perm = 'group.none' permissions_setup_func(group, perm, recursive=recursive) repo_items = [x for x in _get_repo_perms(group, recursive)] items = [x for x in _get_group_perms(group, recursive)] _check_expected_count(items, repo_items, expected_count(group, True)) for name, perm in repo_items: check_tree_perms(name, perm, group, 'repository.read') for name, perm in items: check_tree_perms(name, perm, group, 'group.none')
def test_user_permissions_on_group_with_recursive_mode_on_repo_groups(): # set permission to g0/g0_1 with recursive mode on just repository groups recursive = 'groups' group = u'g0/g0_1' perm = 'group.none' permissions_setup_func(group, perm, recursive=recursive) repo_items = [x for x in _get_repo_perms(group, recursive)] items = [x for x in _get_group_perms(group, recursive)] _check_expected_count(items, repo_items, expected_count(group, True)) for name, perm in repo_items: yield check_tree_perms, name, perm, group, 'repository.read' for name, perm in items: yield check_tree_perms, name, perm, group, 'group.none'
def test_user_permissions_on_group_with_recursive_mode(): # set permission to g0 recursive mode, all children including # other repos and groups should have this permission now set ! recursive = 'all' group = u'g0' permissions_setup_func(group, 'group.write', recursive=recursive) repo_items = [x for x in _get_repo_perms(group, recursive)] items = [x for x in _get_group_perms(group, recursive)] _check_expected_count(items, repo_items, expected_count(group, True)) for name, perm in repo_items: check_tree_perms(name, perm, group, 'repository.write') for name, perm in items: check_tree_perms(name, perm, group, 'group.write')
def test_user_permissions_on_group_with_recursive_mode(): # set permission to g0 recursive mode, all children including # other repos and groups should have this permission now set ! recursive = 'all' group = 'g0' permissions_setup_func(group, 'group.write', recursive=recursive) repo_items = [x for x in _get_repo_perms(group, recursive)] items = [x for x in _get_group_perms(group, recursive)] _check_expected_count(items, repo_items, expected_count(group, True)) for name, perm in repo_items: yield check_tree_perms, name, perm, group, 'repository.write' for name, perm in items: yield check_tree_perms, name, perm, group, 'group.write'
def test_user_permissions_on_group_with_recursive_mode_on_repos(): # set permission to g0/g0_1 with recursive mode on just repositories recursive = 'repos' group = u'g0/g0_1' perm = 'group.write' permissions_setup_func(group, perm, recursive=recursive) repo_items = [x for x in _get_repo_perms(group, recursive)] items = [x for x in _get_group_perms(group, recursive)] _check_expected_count(items, repo_items, expected_count(group, True)) for name, perm in repo_items: check_tree_perms(name, perm, group, 'repository.write') for name, perm in items: # permission is set with repos only mode, but we also change the permission # on the group we trigger the apply to children from, thus we need # to change its permission check old_perm = 'group.read' if name == group: old_perm = perm check_tree_perms(name, perm, group, old_perm)
def test_user_permissions_on_group_with_recursive_repo_mode_inner_group(): ## set permission to g0_3 group to none, with recursive repos only recursive = 'repos' group = 'g0/g0_3' perm = 'group.none' permissions_setup_func(group, perm, recursive=recursive) repo_items = [x for x in _get_repo_perms(group, recursive)] items = [x for x in _get_group_perms(group, recursive)] _check_expected_count(items, repo_items, expected_count(group, True)) for name, perm in repo_items: yield check_tree_perms, name, perm, group, 'repository.none' for name, perm in items: # permission is set with repos only mode, but we also change the permission # on the group we trigger the apply to children from, thus we need # to change its permission check old_perm = 'group.read' if name == group: old_perm = perm yield check_tree_perms, name, perm, group, old_perm