У выбранного родителя бывают внуки, для которых собственные родители также являются детьми для выбранного. В приведённом коде нет проверки на внуков перед сокрытием.
В каком массиве? Все id доступны и так через атрибут. Здесь нужно понять логику, что закрывать нужно не только непосредственных детей, но и внуков и правнуков. А в процедуре скрытия есть проверка только на непосредственного родителя перед скрытием.
Ну, если она пустая, то можно попытаться записать пустой файл с мудрёным названием, а потом найти его в системе.
Также следует внимательно осмотреть конфиг фтп-сервера, там могут быть адреса директорий для пользователей, подключающихся к фтп, или указание, что используются системные домашние директории.
Вариант, что у пользователя нет прав даже на чтение, конечно, возможен, но тогда должны бы выходить соответствующие сообщения в клиенте.
Лучше бы группу на директорию не менять, а добавлять нужного пользователя в эту группу.
['one', 'two', 'three'].map( ( [a] ) => a ) + ''