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',
'nofooter' => false,
'noappheader' => false,
'enable_browser_class' => True
);
$GLOBALS[ 'phpgw'] -> js -> validate_file( 'jscode', 'connector', 'filemanager' );
$GLOBALS[ 'phpgw'] -> js -> validate_file( 'jscode', 'common_functions', 'filemanager' );
$GLOBALS[ 'phpgw'] -> js -> validate_file( 'jscode', 'config', 'filemanager' );
$t = $GLOBALS['phpgw']->template;
$t->set_file(array('config_list' => 'config_folders.tpl'));
$t->set_block('config_list','body','body');
$t -> set_var( array(
'lang_directory' => lang('directory'),
'lang_search' => lang('search'),
'lang_remove' => lang('remove'),
'lang_rename' => lang('rename'),
'lang_create' => lang('create'),
'lang_reconstruct' => lang('reconstruct')
) );
$t -> pparse( 'out', 'body' );
$GLOBALS[ 'phpgw' ] -> common -> phpgw_footer( );
}
function groups_users( )
{
$GLOBALS['phpgw_info']['flags'] = array
(
'currentapp' => 'filemanager',
'nofooter' => false,
'noappheader' => false,
'enable_browser_class' => True
);
$GLOBALS[ 'phpgw'] -> js -> validate_file( 'jscode', 'connector', 'filemanager' );
$GLOBALS[ 'phpgw'] -> js -> validate_file( 'jscode', 'common_functions', 'filemanager' );
$GLOBALS[ 'phpgw'] -> js -> validate_file( 'jscode', 'config', 'filemanager' );
$t = $GLOBALS['phpgw']->template;
$t->set_file(array('config_list' => 'config_owner.tpl'));
$t->set_block('config_list','body','body');
$t -> set_var( array(
'lang_directory' => lang('directory'),
'lang_search' => lang('search'),
'lang_setowner' => lang('set owner'),
'lang_setperm' => lang('set permission'),
'lang_users_and_groups' => lang('Users and groups')
) );
$t -> pparse( 'out', 'body' );
$GLOBALS[ 'phpgw' ] -> common -> phpgw_footer( );
}
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',
'nofooter' => false,
'noappheader' => false,
'enable_browser_class' => True
);
$GLOBALS[ 'phpgw'] -> js -> validate_file( 'jscode', 'connector', 'filemanager' );
$GLOBALS[ 'phpgw'] -> js -> validate_file( 'jscode', 'common_functions', 'filemanager' );
$GLOBALS[ 'phpgw'] -> js -> validate_file( 'jscode', 'config', 'filemanager' );
$t = $GLOBALS['phpgw']->template;
$t->set_file(array('config_list' => 'config_quota.tpl'));
$t->set_block('config_list','body','body');
$t -> set_var( array(
'lang_directory' => lang('directory'),
'lang_search' => lang('search'),
'lang_save' => lang('save')
) );
$t -> pparse( 'out', 'body' );
$GLOBALS[ 'phpgw' ] -> common -> phpgw_footer( );
}
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;
}
}
?>