]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
CI: add a test for per-user (and per-group) veto files
authorRalph Boehme <slow@samba.org>
Thu, 25 Jan 2024 14:03:10 +0000 (15:03 +0100)
committerStefan Metzmacher <metze@samba.org>
Fri, 26 Jul 2024 10:06:31 +0000 (10:06 +0000)
Not adding a specific test for per-user hide files as that uses the exact same
mechanism as the per-user veto files.

Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
selftest/target/Samba3.pm
source3/script/tests/test_veto_files.sh

index 8db3485e1563307e3715227b111ff90bc8f16913..23c7d284e85569dadea8edc52e55ec22cd3db2c6 100755 (executable)
@@ -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
index ee8e1ff247fac043f42743cc31db51b5497689cf..65767aca1d93413a59050d4136aeac9fa9bce643 100755 (executable)
@@ -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