*
* http://www.egroupware.org *
* -------------------------------------------- *
* This program is free software; you can redistribute it and/or modify it *
* under the terms of the GNU General Public License as published by the *
* Free Software Foundation; either version 2 of the License, or (at your *
* option) any later version. *
\**************************************************************************/
class uiconfig
{
var $public_functions = array('index' => True);
function index()
{
if ($GLOBALS['phpgw']->acl->check('site_config_access',1,'admin'))
{
$GLOBALS['phpgw']->redirect_link('/#');
}
if(get_magic_quotes_gpc() && is_array($_POST['newsettings']))
{
$_POST['newsettings'] = array_map("stripslashes", $_POST['newsettings']);
}
switch($_GET['appname'])
{
case 'admin':
case 'addressbook':
case 'calendar':
case 'email':
case 'instant_messenger':
case 'jabberit_messenger':
case 'nntp':
/*
Other special apps can go here for now, e.g.:
case 'bogusappname':
*/
$appname = $_GET['appname'];
$config_appname = 'phpgwapi';
break;
case 'phpgwapi':
case '':
/* This keeps the admin from getting into what is a setup-only config */
$GLOBALS['phpgw']->redirect_link('/#admin/');
break;
default:
$appname = $_GET['appname'];
$config_appname = $appname;
break;
}
$t = CreateObject('phpgwapi.Template',$GLOBALS['phpgw']->common->get_tpl_dir($appname));
$t->set_unknowns('keep');
$t->set_file(array('config' => 'config.tpl'));
$t->set_block('config','header','header');
$t->set_block('config','body','body');
$t->set_block('config','footer','footer');
$c = CreateObject('phpgwapi.config',$config_appname);
$c->read_repository();
if ($c->config_data)
{
$current_config = $c->config_data;
}
if ($_POST['cancel'] || $_POST['submit'] && $GLOBALS['phpgw']->acl->check('site_config_access',2,'admin'))
{
$GLOBALS['phpgw']->redirect_link('/#admin/');
}
if ($_POST['submit'])
{
/* Load hook file with functions to validate each config (one/none/all) */
$GLOBALS['phpgw']->hooks->single('config_validate',$appname);
foreach($_POST['newsettings'] as $key => $config)
{
if ($config)
{
if($GLOBALS['phpgw_info']['server']['found_validation_hook'] && function_exists($key))
{
call_user_func($key,$config);
if($GLOBALS['config_error'])
{
$errors .= lang($GLOBALS['config_error']) . ' ';
$GLOBALS['config_error'] = False;
}
else
{
$c->config_data[$key] = $config;
}
}
else
{
$c->config_data[$key] = $config;
}
}
else
{
/* don't erase passwords, since we also don't print them */
if(!ereg('passwd',$key) && !ereg('password',$key) && !ereg('root_pw',$key))
{
unset($c->config_data[$key]);
}
}
}
if($GLOBALS['phpgw_info']['server']['found_validation_hook'] && function_exists('final_validation'))
{
final_validation($newsettings);
if($GLOBALS['config_error'])
{
$errors .= lang($GLOBALS['config_error']) . ' ';
$GLOBALS['config_error'] = False;
}
unset($GLOBALS['phpgw_info']['server']['found_validation_hook']);
}
$c->save_repository();
if(!$errors)
{
$GLOBALS[ 'phpgw_info' ][ 'flags' ][ 'java_script' ] .= "";
exit;
}
}
if($errors)
{
$t->set_var('error',lang('Error') . ': ' . $errors);
$t->set_var('th_err','#FF8888');
unset($errors);
unset($GLOBALS['config_error']);
}
else
{
$t->set_var('error','');
$t->set_var('th_err',$GLOBALS['phpgw_info']['theme']['th_bg']);
}
if(!@is_object($GLOBALS['phpgw']->js))
{
$GLOBALS['phpgw']->js = CreateObject('phpgwapi.javascript');
}
$GLOBALS['phpgw']->js->validate_file('jscode','openwindow','admin');
//$GLOBALS['phpgw']->common->phpgw_header();
//echo parse_navbar();
if($appname=="expressoAdmin1_2") {
/* Varre a pasta inc do admin do expresso procurando scripts de geração de login automático
(classes com nomes iniciados pela string 'login', procedida da string '_' mais o nome
do algoritmo.
*/
$dir = $GLOBALS['phpgw']->common->get_app_dir($appname) . "/inc";
$options = ' ';
if (is_dir($dir))
{
if ($dh = opendir($dir))
{
while (($file = readdir($dh)) !== false)
{
$temp = explode(".",$file);
if( (substr($temp[1],0,5) =='login') && ($temp[0] == 'class') )
{
$options .= "