    function getObjects(callback) {
        main.socket.emit('getAllObjects', function (err, res) {
            if (err) {
                // following errors are possible
                // permissionError
                // Admin is not enabled in cloud settings!
                window.alert(_(err));
                return;
            }

            setTimeout(function () {
                var obj;
                main.objects = res;
                for (var id in main.objects) {
                    if (!main.objects.hasOwnProperty(id) || id.slice(0, 7) === '_design') continue;

                    obj = main.objects[id];

                    if (obj.type === 'instance') main.instances.push(id);
                    if (obj.type === 'enum')     tabs.enums.list.push(id);
                    if (obj.type === 'user')     tabs.users.list.push(id);
                    if (obj.type === 'group')    tabs.users.groups.push(id);
                    if (obj.type === 'adapter')  tabs.adapters.list.push(id);
                    if (obj.type === 'host')     tabs.hosts.addHost(obj);

                    // convert obj.history into obj.custom
                    if (obj.common && obj.common.history) {
                        obj.common.custom = JSON.parse(JSON.stringify(obj.common.history));
                        delete obj.common.history;
                    }
                }
                main.objectsLoaded = true;
                main.initHostsList(true);

                initTabs();
                // init dialogs
                for (var dialog in main.dialogs) {
                    if (main.dialogs.hasOwnProperty(dialog) && typeof main.dialogs[dialog].prepare === 'function') {
                        main.dialogs[dialog].prepare();
                    }
                }

                // Detect node.js version
                checkNodeJsVersions(tabs.hosts.list);

                main.getUser();

                if (typeof callback === 'function') callback();
            }, 0);
        });
    }
The software uses external input to construct a pathname that is intended to identify a file or directory that is located underneath a restricted parent directory, but the software does not properly neutralize special elements within the pathname that can cause the pathname to resolve to a location that is outside of the restricted directory.