diff --git a/selftest/target/Samba3.pm b/selftest/target/Samba3.pm index 8db3485e156..23c7d284e85 100755 --- a/selftest/target/Samba3.pm +++ b/selftest/target/Samba3.pm @@ -2034,7 +2034,7 @@ sub setup_fileserver [veto_files] path = $veto_sharedir - veto files = /veto_name*/ + veto files = /veto_name*/../user1/user1file/../user2/user2file/../+group1/group1file/../+group2/group2file [delete_yes_unwrite] read only = no diff --git a/source3/script/tests/test_veto_files.sh b/source3/script/tests/test_veto_files.sh index ee8e1ff247f..65767aca1d9 100755 --- a/source3/script/tests/test_veto_files.sh +++ b/source3/script/tests/test_veto_files.sh @@ -189,6 +189,23 @@ test_create_veto_file() return 0 } +test_per_user() +{ + USERNAME=user1 + smbclient_get_expect_error "dir1/user1file" "NT_STATUS_OBJECT_NAME_NOT_FOUND" || return 1 + smbclient_get_expect_error "dir1/user2file" "NT_STATUS_OK" || return 1 + smbclient_get_expect_error "dir1/group1file" "NT_STATUS_OBJECT_NAME_NOT_FOUND" || return 1 + smbclient_get_expect_error "dir1/group2file" "NT_STATUS_OK" || return 1 + + USERNAME=user2 + smbclient_get_expect_error "dir1/user1file" "NT_STATUS_OK" || return 1 + smbclient_get_expect_error "dir1/user2file" "NT_STATUS_OBJECT_NAME_NOT_FOUND" || return 1 + smbclient_get_expect_error "dir1/group1file" "NT_STATUS_OK" || return 1 + smbclient_get_expect_error "dir1/group2file" "NT_STATUS_OBJECT_NAME_NOT_FOUND" || return 1 + + return 0 +} + do_cleanup echo "regular_file" > "${SHAREPATH}/regular_file" @@ -269,8 +286,15 @@ touch "$SHAREPATH/dir1/dir2/dir3/veto_name_dir\"mangle/file_inside_dir" mkdir "$SHAREPATH/dir1/dir2/dir3/veto_name_dir\"mangle/testdir" touch "$SHAREPATH/dir1/dir2/dir3/veto_name_dir\"mangle/testdir/file_inside_dir" +# testfiles for per-user feature +touch "$SHAREPATH/dir1/user1file" +touch "$SHAREPATH/dir1/user2file" +touch "$SHAREPATH/dir1/group1file" +touch "$SHAREPATH/dir1/group2file" + testit "create_veto_file" test_create_veto_file || failed=$((failed + 1)) testit "get_veto_file" test_get_veto_file || failed=$(("$failed" + 1)) +testit "per-user" test_per_user || failed=$(("$failed" + 1)) do_cleanup