You could simply say:
su -m $user -c "find $dir >/dev/null 2>&1 || echo $dir is not readable or executable"
This would generate the not readable or executable message if any files/directories within $dir
are not readable.
find $dir
would return an error code of non-zero if it's not able to read any file.
EDIT: A more complete (or reliable) way of finding all directories/files that are not readable would be to say:
find . \( -type d -perm /u+r -o -type d -perm /u+x -o -type f -perm /u+r \)