True,
'search_user' => True,
'update_quota' => True,
'load_quota' => True,
'quota' => True,
'removeFolder' => True,
'reconstructFolder' => True,
'set_owner' => True,
'set_permission' => True,
'renameFolder' => True,
'createFolder' => True,
'groups_users' => True,
'folders' => True
);
function vfs_functions(){
}
function folders(){
$GLOBALS['phpgw_info']['flags'] = array
(
'currentapp' => 'filemanager',
'noheader' => False,
'nonavbar' => False,
'nofooter' => False,
'noappheader' => False,
'enable_browser_class' => True
);
$GLOBALS['phpgw']->common->phpgw_header();
include('load_lang.php');
echo "";
echo "";
echo "";
$t = $GLOBALS['phpgw']->template;
$t->set_file(array('config_list' => 'config_folders.tpl'));
$t->set_block('config_list','body','body');
$vars[lang_directory]=lang('directory');
$vars[lang_search]=lang('search');
$vars[lang_remove]=lang('remove');
$vars[lang_rename]=lang('rename');
$vars[lang_create]=lang('create');
$vars[lang_reconstruct]=lang('reconstruct');
$t->set_var($vars);
$t->pparse('out','body');
$GLOBALS['phpgw']->common->phpgw_footer();
$GLOBALS['phpgw']->common->phpgw_exit();
}
function groups_users(){
$GLOBALS['phpgw_info']['flags'] = array
(
'currentapp' => 'filemanager',
'noheader' => False,
'nonavbar' => False,
'nofooter' => False,
'noappheader' => False,
'enable_browser_class' => True
);
$GLOBALS['phpgw']->common->phpgw_header();
include('load_lang.php');
echo "";
echo "";
echo "";
$t = $GLOBALS['phpgw']->template;
$t->set_file(array('config_list' => 'config_owner.tpl'));
$t->set_block('config_list','body','body');
$vars[lang_users_and_groups]=lang('Users and groups');
$vars[lang_search]=lang('search');
$vars[lang_directory]=lang('directory');
$vars[lang_setowner]=lang('set owner');
$vars[lang_setperm]=lang('set permission');
$t->set_var($vars);
$t->pparse('out','body');
$GLOBALS['phpgw']->common->phpgw_footer();
$GLOBALS['phpgw']->common->phpgw_exit();
}
function createFolder(){
$GLOBALS['phpgw_info']['flags'] = array
(
'currentapp' => 'filemanager',
'noheader' => True,
'nonavbar' => True,
'nofooter' => True,
'noappheader' => True,
'enable_browser_class' => True
);
$bo = CreateObject('filemanager.bofilemanager');
$name = $GLOBALS['phpgw']->db->db_addslashes(base64_decode($_GET['name']));
if (strlen($name) < 2)
return false;
$c = CreateObject('phpgwapi.config','filemanager');
$c->read_repository();
$current_config = $c->config_data;
$bo->vfs->override_acl = 1;
if ( $bo->vfs->mkdir(array(
'string' => $name,
'relatives' => array(RELATIVE_NONE)
)) )
if ( $bo->vfs->set_quota(array(
'string' => $name,
'relatives' => array(RELATIVE_NONE),
'new_quota' => $current_config['filemanager_quota_size']
)) )
$return = True;
$bo->vfs->override_acl = 0;
if ($return){
echo "Folder created";
}
else
echo "Error";
}
function removeFolder(){
$GLOBALS['phpgw_info']['flags'] = array
(
'currentapp' => 'filemanager',
'noheader' => True,
'nonavbar' => True,
'nofooter' => True,
'noappheader' => True,
'enable_browser_class' => True
);
$bo = CreateObject('filemanager.bofilemanager');
$name = $GLOBALS['phpgw']->db->db_addslashes(base64_decode($_GET['dir']));
if (strlen($name) < 2)
return false;
if ( $bo->vfs->delete(array(
'string' => $name,
'relatives' => array(RELATIVE_NONE)
)) )
{
/* Clean the log */
$GLOBALS['phpgw']->db->query('DELETE FROM phpgw_vfs WHERE directory = \''.$name.'\'',__LINE__,__FILE__);
if ($GLOBALS['phpgw']->db->Error)
echo "Erro";
else
{
$GLOBALS['phpgw']->db->query('DELETE FROM phpgw_vfs_quota WHERE directory = \''.$name.'\'',__LINE__,__FILE__);
if (!$GLOBALS['phpgw']->db->Error)
echo lang('directory removed sucessfully');
else
echo "Erro";
}
}
return;
}
function reconstructFolder(){
$GLOBALS['phpgw_info']['flags'] = array
(
'currentapp' => 'filemanager',
'noheader' => True,
'nonavbar' => True,
'nofooter' => True,
'noappheader' => True,
'enable_browser_class' => True
);
$bo = CreateObject('filemanager.bofilemanager');
$name = $GLOBALS['phpgw']->db->db_addslashes(base64_decode($_GET['dir']));
if (strlen($name) < 2)
return false;
$bo->vfs->update_real(array(
'string' => $name,
'relatives' => array(RELATIVE_NONE)
));
$bo->vfs->flush_journal(array(
'string' => $name,
'relatives' => array(RELATIVE_NONE),
'deleteall' => True
));
echo lang('Your operation was successfully executed');
}
function renameFolder(){
$GLOBALS['phpgw_info']['flags'] = array
(
'currentapp' => 'filemanager',
'noheader' => True,
'nonavbar' => True,
'nofooter' => True,
'noappheader' => True,
'enable_browser_class' => True
);
$bo = CreateObject('filemanager.bofilemanager');
$name = $GLOBALS['phpgw']->db->db_addslashes(base64_decode($_GET['dir']));
$to = $GLOBALS['phpgw']->db->db_addslashes(base64_decode($_GET['to']));
if (strlen($name) < 2)
return false;
if ( $bo->vfs->mv(array(
'from' => $name,
'to' => $to,
'relatives' => array(RELATIVE_NONE)
)) ){
$bo->vfs->flush_journal(array(
'string' => $name,
'relatives' => array(RELATIVE_NONE),
'deleteall' => True
));
echo lang('Your operation was successfully executed');
}
else
echo lang('Error');
}
function quota(){
$GLOBALS['phpgw_info']['flags'] = array
(
'currentapp' => 'filemanager',
'noheader' => False,
'nonavbar' => False,
'nofooter' => False,
'noappheader' => False,
'enable_browser_class' => True
);
$GLOBALS['phpgw']->common->phpgw_header();
include('load_lang.php');
echo "";
echo "";
echo "";
$t = $GLOBALS['phpgw']->template;
$t->set_file(array('config_list' => 'config_quota.tpl'));
$t->set_block('config_list','body','body');
$vars[lang_directory]=lang('directory');
$vars[lang_search]=lang('search');
$vars[lang_save]=lang('save');
$t->set_var($vars);
$t->pparse('out','body');
$GLOBALS['phpgw']->common->phpgw_footer();
$GLOBALS['phpgw']->common->phpgw_exit();
}
function search_dir(){
$GLOBALS['phpgw_info']['flags'] = array
(
'currentapp' => 'filemanager',
'noheader' => True,
'nonavbar' => True,
'nofooter' => True,
'noappheader' => True,
'enable_browser_class' => True
);
$name = $GLOBALS['phpgw']->db->db_addslashes($_GET['name']);
$GLOBALS['phpgw']->db->query('SELECT DISTINCT directory FROM phpgw_vfs WHERE (directory like \'%'.$name.'%\') LIMIT 20',__LINE__,__FILE__);
while ($GLOBALS['phpgw']->db->next_record()){
$val = $GLOBALS['phpgw']->db->row();
echo "";
}
$GLOBALS['phpgw']->db->query('SELECT directory,name from phpgw_vfs WHERE directory = \'/home\' and name like \'%'.$name.'%\' LIMIT 1',__LINE__,__FILE__);
if ($GLOBALS['phpgw']->db->next_record()){
$val = $GLOBALS['phpgw']->db->row();
echo "";
}
}
function search_user(){
$GLOBALS['phpgw_info']['flags'] = array
(
'currentapp' => 'filemanager',
'noheader' => True,
'nonavbar' => True,
'nofooter' => True,
'noappheader' => True,
'enable_browser_class' => True
);
$account_info = $GLOBALS['phpgw']->accounts->get_list('both',0,'','',$_GET['name'],'all');
foreach($account_info as $val)
echo "";
}
function set_permission(){
$GLOBALS['phpgw_info']['flags'] = array
(
'currentapp' => 'filemanager',
'noheader' => True,
'nonavbar' => True,
'nofooter' => True,
'noappheader' => True,
'enable_browser_class' => True
);
$name = $GLOBALS['phpgw']->db->db_addslashes(base64_decode($_GET['dir']));
$perms = ($_GET['perms'])*1;
$owner = ($_GET['owner'])*1;
$dirs=explode('/',$name);
$GLOBALS['phpgw']->db->query('SELECT owner_id from phpgw_vfs WHERE directory = \'/'.$dirs[1].'\' and name=\''.$dirs[2].'\' LIMIT 1',__LINE__,__FILE__);
if ($GLOBALS['phpgw']->db->next_record()){
$val = $GLOBALS['phpgw']->db->row();
$owner_id = $val['owner_id'];
}
$query = "SELECT count(*) FROM phpgw_acl WHERE acl_appname = 'filemanager' and acl_account = '".$owner_id."' and acl_location='".$owner."'";
if ($GLOBALS['phpgw']->db->query($query) && $GLOBALS['phpgw']->db->next_record())
$val = $GLOBALS['phpgw']->db->row();
else
{
echo $GLOBALS['phpgw']->db->error;
return false;
}
if ($val['count'] == '1')
$GLOBALS['phpgw']->db->query("UPDATE phpgw_acl SET acl_rights = ".$perms." where acl_appname = 'filemanager' and acl_account = '".$owner_id."' AND acl_location = '".$owner."'",__LINE__,__FILE__);
else
$GLOBALS['phpgw']->db->query("INSERT INTO phpgw_acl values('filemanager','".$owner."','".$owner_id."',".$perms.")",__LINE__,__FILE__);
if ($GLOBALS['phpgw']->db->Error)
echo "Erro";
else
{
echo lang('entry updated sucessfully');
}
return;
}
function set_owner(){
$GLOBALS['phpgw_info']['flags'] = array
(
'currentapp' => 'filemanager',
'noheader' => True,
'nonavbar' => True,
'nofooter' => True,
'noappheader' => True,
'enable_browser_class' => True
);
$name = $GLOBALS['phpgw']->db->db_addslashes(base64_decode($_GET['dir']));
$owner = ($_GET['owner'])*1;
$GLOBALS['phpgw']->db->query('UPDATE phpgw_vfs SET owner_id = '.$owner.' WHERE directory = \''.$name.'\'',__LINE__,__FILE__);
if ($GLOBALS['phpgw']->db->Error)
echo "Erro";
else
{
$dirs=explode('/',$name);
$GLOBALS['phpgw']->db->query('UPDATE phpgw_vfs SET owner_id = '.$owner.' WHERE directory = \'/'.$dirs[1].'\' and name=\''.$dirs[2].'\'',__LINE__,__FILE__);
if ($GLOBALS['phpgw']->db->Error)
echo "Erro";
else
{
echo lang('entry updated sucessfully');
}
}
return;
}
function update_quota(){
$GLOBALS['phpgw_info']['flags'] = array
(
'currentapp' => 'filemanager',
'noheader' => True,
'nonavbar' => True,
'nofooter' => True,
'noappheader' => True,
'enable_browser_class' => True
);
$name = $GLOBALS['phpgw']->db->db_addslashes(base64_decode($_GET['dir']));
$size = ($_GET['val'])*1;
/* See if quota exists or not */
$query = "SELECT count(directory) FROM phpgw_vfs_quota WHERE directory = '".$name."' LIMIT 1";
if ($GLOBALS['phpgw']->db->query($query) && $GLOBALS['phpgw']->db->next_record())
$val = $GLOBALS['phpgw']->db->row();
else
{
echo $GLOBALS['phpgw']->db->error;
return false;
}
if ($val['count'] == '1')
{
$GLOBALS['phpgw']->db->query('UPDATE phpgw_vfs_quota SET quota_size = '.$size.' WHERE directory = \''.$name.'\'',__LINE__,__FILE__);
if ($GLOBALS['phpgw']->db->Error)
echo "Erro";
else
echo lang('entry updated sucessfully');
}
else
{
/*preferences does not exist*/
$query = "INSERT INTO phpgw_vfs_quota values ('".$name."',".$size.")";
if (!$GLOBALS['phpgw']->db->query($query))
echo $GLOBALS['phpgw']->db->error;
else
echo lang('entry updated sucessfully');
}
return;
}
function load_quota(){
$GLOBALS['phpgw_info']['flags'] = array
(
'currentapp' => 'filemanager',
'noheader' => True,
'nonavbar' => True,
'nofooter' => True,
'noappheader' => True,
'enable_browser_class' => True
);
$name = $GLOBALS['phpgw']->db->db_addslashes(base64_decode($_GET['name']));
$GLOBALS['phpgw']->db->query('SELECT quota_size FROM phpgw_vfs_quota WHERE directory = \''.$name.'\' LIMIT 1',__LINE__,__FILE__);
$GLOBALS['phpgw']->db->next_record();
$val =$GLOBALS['phpgw']->db->row();
echo $val['quota_size'];
return;
}
}
?>