예제 #1
0
 /** 
 * @return void 
 * @param 
 * @param 
 * @desc  Special getfromlist for ffile. The concept is that the the whole directory tree is available virtually under an ffile object, thus enabling us to get any object at any level. This is different from other objects where there is only one level of children.
 */
 function getFfileFromVirtualList($name)
 {
     $name = coreFfile::getRealpath($name);
     $name = '/' . $name;
     $ffile = new Ffile($this->__masterserver, $this->__readserver, "__path_log", $name, $this->getParentO()->username);
     $ffile->__parent_o = $this;
     $ffile->get();
     $ffile->readonly = 'on';
     return $ffile;
 }
예제 #2
0
 function getFfileFromVirtualList($name)
 {
     $root = "/home/hypervm/xen/template/";
     //$root = "/vz/template/cache/";
     $ffile = new Ffile(null, 'localhost', $root, $name, "root");
     $ffile->__parent_o = $this;
     $ffile->__var_extraid = "template";
     $ffile->ostemplate = 'on';
     $ffile->get();
     return $ffile;
 }
예제 #3
0
 function getFfileFromVirtualList($name)
 {
     $root = $gbl->getSessionV('ffile_root');
     if (!$root) {
         throw new lxException("no_root_dir_specified", 'template');
     }
     $name = coreFfile::getRealpath($name);
     $name = '/' . $name;
     $ffile = new Ffile($this->__masterserver, $this->__readserver, $root, $name, "lxlabs");
     $ffile->__parent_o = $this;
     $ffile->get();
     return $ffile;
 }
예제 #4
0
 function getFfileFromVirtualList($name)
 {
     global $gbl, $sgbl, $login, $ghtml;
     $parent = $this->getParentO();
     if ($this->isClass('ostemplate_xen')) {
         $path = "d";
     }
     $root = "{$gen->rootdir}/vps/{$parent->ttype}/{$parent->nname}/";
     $name = coreFfile::getRealpath($name);
     $name = "/{$name}";
     $ffile = new Ffile(null, $server, $root, $name, "root");
     $ffile->__parent_o = $this;
     $ffile->get();
     $ffile->browsebackup = 'on';
     return $ffile;
 }
예제 #5
0
 function getFfileFromVirtualList($name)
 {
     global $gbl, $sgbl, $login, $ghtml;
     $name = coreFfile::getRealpath($name);
     $name = "/{$name}";
     $parent = $this->getParentO();
     $root = "__path_program_home/{$this->getParentO()->get__table()}/{$this->getParentO()->nname}/__backup/";
     $fullpath = "{$root}/{$name}";
     if ($parent->isClient()) {
         $syncserver = "localhost";
     } else {
         $syncserver = $parent->syncserver;
     }
     rl_exec_get(null, $syncserver, array("lxbackup", "MakeSureDirectoryExists"), array("{$root}/"));
     $ffile = new Ffile(null, $syncserver, $root, $name, 'lxlabs');
     $ffile->__parent_o = $this;
     $ffile->get();
     return $ffile;
 }
예제 #6
0
 function getFfileFromVirtualList($name)
 {
     global $gbl, $sgbl, $login, $ghtml;
     $parent = $this->getParentO();
     $bserver = $parent->getBackupServer();
     if (is_disabled_or_null($bserver)) {
         throw new lxException("backup_server_is_not_configured");
     }
     $bs = new CentralBackupServer(null, null, $bserver);
     $bs->get();
     if ($bs->dbaction === 'add') {
         throw new lxException("backup_server_is_not_there");
     }
     $server = $bs->slavename;
     $root = "{$bs->snapshotdir}/vps/{$parent->ttype}/{$parent->nname}/";
     $name = coreFfile::getRealpath($name);
     $name = "/{$name}";
     $ffile = new Ffile(null, $server, $root, $name, "root");
     $ffile->__parent_o = $this;
     $ffile->get();
     $ffile->browsebackup = 'on';
     return $ffile;
 }
예제 #7
0
파일: weblib.php 프로젝트: zseand/kloxo
 function getFfileFromVirtualList($name)
 {
     $name = coreFfile::getRealpath($name);
     $htroot = $this->getFullDocRoot();
     $confroot = "__path_httpd_root/{$this->nname}/";
     if ($name === '__lx_error_log') {
         $root = "{$confroot}/stats/";
         $name = "{$this->nname}-error_log";
         $readonly = 'on';
         $showheader = false;
         $numlines = '20';
         $extraid = "__lx_error_log";
         if ($this->__driverappclass === 'lighttpd') {
             rl_exec_get(null, $this->syncserver, array("web__lighttpd", 'fixErrorLog'), array($this->nname));
         }
     } else {
         if ($name === '__lx_access_log') {
             $root = "{$confroot}/stats/";
             $name = "{$this->nname}-custom_log";
             $readonly = 'on';
             $showheader = false;
             $numlines = '20';
             $extraid = "__lx_access_log";
         } else {
             if ($name === '__lx_php_log') {
                 $root = "/home/{$this->customer_name}/__processed_stats/";
                 $name = "{$this->nname}.phplog";
                 $readonly = 'on';
                 $showheader = false;
                 $numlines = '20';
                 $extraid = "__lx_php_log";
             } else {
                 $root = $htroot;
                 $readonly = 'off';
                 $showheader = true;
                 $name = '/' . $name;
                 $numlines = null;
                 $extraid = null;
             }
         }
     }
     $ffile = new Ffile($this->__masterserver, $this->syncserver, $root, $name, $this->username);
     $ffile->__parent_o = $this;
     $ffile->get();
     $ffile->readonly = $readonly;
     $ffile->__flag_showheader = $showheader;
     $ffile->numlines = $numlines;
     $ffile->__var_extraid = $extraid;
     return $ffile;
 }
예제 #8
0
 function getFfileFromVirtualList($name)
 {
     list($mailacc, $domain) = explode("@", $this->nname);
     $mailpath = mmail__qmail::getDir($domain);
     $name = coreFfile::getRealpath($name);
     $name = '/' . $name;
     $ffile = new Ffile($this->__masterserver, $this->__readserver, "{$mailpath}/{$mailacc}", $name, mmail__qmail::getUserGroup($domain));
     $ffile->__parent_o = $this;
     $ffile->get();
     return $ffile;
 }
예제 #9
0
 function getFfileFromVirtualList($name)
 {
     $name = coreFfile::getRealpath($name);
     $name = '/' . $name;
     $parent_name = $this->getParentName();
     $ffile = new Ffile($this->__masterserver, $this->syncserver, "__path_httpd_root/{$parent_name}/{$parent_name}", $name, $this->nname);
     $ffile->__parent_o = $this;
     $ffile->get();
     return $ffile;
 }
예제 #10
0
 function getFfileFromVirtualList($name)
 {
     $name = coreFfile::getRealpath($name);
     $name = '/' . $name;
     $ffile = new Ffile($this->__masterserver, $this->websyncserver, "__path_customer_root/{$this->getPathFromName()}", $name, "{$this->username}");
     $ffile->__parent_o = $this;
     $ffile->get();
     return $ffile;
 }
예제 #11
0
 function getFfileFromVirtualList($name)
 {
     if ($this->isXen() && $this->isOn('status')) {
         throw new lxexception('to_use_filemanager_shut_down_xen_vm_first');
     }
     if (!$this->isXen() && !$this->vpsid) {
         throw new lxexception('something_wrong_there_is_no_vpsid');
     }
     $name = coreFfile::getRealpath($name);
     $name = '/' . $name;
     if ($this->isXen()) {
         $root = "__path_home_dir/xen/{$this->nname}/mnt";
     } else {
         if ($this->isOn('status')) {
             $root = "/vz/root/{$this->vpsid}";
         } else {
             $root = "{$this->corerootdir}/{$this->vpsid}/";
         }
     }
     $ffile = new Ffile($this->__masterserver, $this->syncserver, $root, $name, "root");
     $ffile->__parent_o = $this;
     $ffile->get();
     return $ffile;
 }
예제 #12
0
 function dbactionUpdate($subaction)
 {
     if_demo_throw_exception('ffile');
     if ($this->main->isOn('readonly')) {
         throw new lxexception('file_manager_is_readonly', '');
     }
     switch ($subaction) {
         case "edit":
             lfile_put_contents($this->main->getFullPath(), $this->main->content);
             break;
         case "upload":
             $filename = $this->main->getFullPath() . "/{$this->main->upload_file_name}";
             dprintr($this->main->upload_overwrite_f);
             if (!$this->main->isOn('upload_overwrite_f')) {
                 if (lfile_exists($filename)) {
                     throw new lxexception('file_exists_upload', 'upload_name_f');
                 }
             }
             getFromFileserv($this->main->__var_upload_tmp_server, $this->main->__var_upload_filepass, $filename);
             break;
         case "rename":
             $directory = dirname($this->main->fullpath);
             $new = $directory . "/" . $this->main->newname;
             if (lfile_exists($new)) {
                 throw new lxexception('file_exists_rename', '');
             }
             lxfile_mv_rec($this->main->fullpath, $new);
             //lxfile_unix_chown($new, $this->main->__username_o);
             break;
         case "paste":
             if ($this->main->paste_list) {
                 // Hack... SPecifically checking for pasteaction. Should just use it directly in the command.
                 $arglist[] = $this->main->__username_o;
                 foreach ($this->main->paste_list as &$_tl) {
                     $_tl = $this->main->root . $_tl;
                 }
                 //$arglist = array_merge($arglist, $this->main->paste_list);
                 $arglist[] = $this->main->paste_list;
                 $arglist[] = $this->main->fullpath;
                 if ($this->main->pasteaction === 'copy') {
                     foreach ($this->main->paste_list as $p) {
                         lxfile_cp_rec($p, $this->main->fullpath);
                     }
                 } else {
                     foreach ($this->main->paste_list as $p) {
                         lxfile_mv_rec($p, $this->main->fullpath);
                     }
                 }
                 //lxfile_unix_chown_rec($this->main->fullpath, $this->main->__username_o);
             }
             break;
         case "perm":
             throw new lxexception('no_perm_setting', '');
             break;
         case "newdir":
             $i = 1;
             $rpath = $this->main->fullpath;
             $name = "/" . $this->main->newfolder_f;
             $path = $rpath . $name;
             if (lxfile_exists($path)) {
                 throw new lxexception('file_exists', '');
             }
             lxfile_mkdir($path);
             break;
         case "zip_file":
             foreach ($this->main->zip_file_list as &$_t_f) {
                 $_t_f = coreFfile::removeLeadingSlash($_t_f);
                 $_t_f = basename($_t_f);
                 $_t_f = "\"{$_t_f}\"";
             }
             $list = implode(" ", $this->main->zip_file_list);
             $oldir = getcwd();
             $fullpath = expand_real_root($this->main->fullpath);
             do_exec_system($this->main->__username_o, $fullpath, "c:/Progra~1/7-Zip/7z a NewArchive.zip {$list}", $out, $err, $ret, null);
             break;
         case "filedelete":
             foreach ($this->main->filedelete_list as $f) {
                 ffile__common::moveToTrash($this->main->root, $f);
             }
             break;
         case "restore_trash":
             foreach ($this->main->restore_trash_list as $f) {
                 ffile__common::restoreFromTrash($this->main->root, $f);
             }
             break;
         case "clear_trash":
             foreach ($this->main->clear_trash_list as $f) {
                 ffile__common::clearFromTrash($this->main->root, $f);
             }
             break;
         case "zipextract":
             $fulzippath = $this->main->root . $this->main->zip_extract_dir_f;
             if (!lxfile_exists(null, $fulzippath)) {
                 lxfile_mkdir($fulzippath);
             } else {
                 $zipdir = new Ffile("localhost", "localhost", $this->main->root, $this->main->zip_extract_dir_f, $this->main->__username_o);
                 $zipdir->get();
                 if (!$zipdir->is_dir()) {
                     throw new lxexception("file_exists_but_not_dir", 'unzippath', $this->main->zip_extract_dir_f);
                 }
             }
             $command = "c:/Progra~1/7-zip/7z x -y";
             $dir = expand_real_root($fulzippath);
             $file = expand_real_root($this->main->getFullPath());
             if (!csa($file, ":")) {
                 $fullpath = getcwd() . "/{$file}";
             } else {
                 $fullpath = $file;
             }
             $oldir = getcwd();
             $fullpath = expand_real_root($fullpath);
             do_exec_system($this->main->__username_o, $dir, "{$command} {$fullpath}", $out, $err, $ret, null);
             break;
     }
 }
예제 #13
0
 function getFfileFromVirtualList($name)
 {
     $name = coreFfile::getRealpath($name);
     $name = "/{$name}";
     $root = "__path_mail_root/domains/{$this->nname}/";
     $ffile = new Ffile($this->__masterserver, $this->syncserver, $root, $name, $this->username);
     $ffile->__parent_o = $this;
     $ffile->get();
     $ffile->readonly = 'on';
     return $ffile;
 }