get_session();
$usr_id = $session->get_usr_id();
$registry = $appbox->get_registry();
$request = http_request::getInstance();
$user_obj = User_Adapter::getInstance($usr_id, $appbox);
$createBase = $mountBase = false;
$error = array();
$Core = bootstrap::getCore();
phrasea::headers();
?>
has_post_datas() && $user_obj->is_admin() === true)
{
$parm = $request->get_parms('upgrade');
if (!is_null($parm['upgrade']))
{
$checks = phrasea::is_scheduler_started();
if ($checks !== true)
{
$appbox = appbox::get_instance(\bootstrap::getCore());
$upgrader = new Setup_Upgrade($appbox);
$advices = $appbox->forceUpgrade($upgrader);
$code = '';
foreach ($advices as $advice)
{
$code .= $advice['sql'] . '
';
}
$code = _('Propositions de modifications des tables')
. '' . $code . '
';
?>
get_parms('mount_base', 'new_settings', 'new_dbname', 'new_data_template', 'new_hostname', 'new_port', 'new_user', 'new_user', 'new_password', 'new_dbname', 'new_data_template');
if (!$parm['mount_base'])
{
if (!$parm['new_settings'] && $parm['new_dbname'] && $parm['new_data_template'])
{
if (p4string::hasAccent($parm['new_dbname']))
{
$error[] = _('Database name can not contains special characters');
}
if (count($error) === 0)
{
try
{
$configuration = \Alchemy\Phrasea\Core\Configuration::build();
$choosenConnexion = $configuration->getPhraseanet()->get('database');
$connexion = $configuration->getConnexion($choosenConnexion);
$hostname = $connexion->get('host');
$port = $connexion->get('port');
$user = $connexion->get('user');
$password = $connexion->get('password');
$data_template = new system_file($registry->get('GV_RootPath') . 'lib/conf.d/data_templates/' . $parm['new_data_template'] . '.xml');
$connbas = new connection_pdo('databox_creation', $hostname, $port, $user, $password, $parm['new_dbname'], array(), $appbox->get_registry());
try
{
$base = databox::create($appbox, $connbas, $data_template, $registry);
$base->registerAdmin($user_obj);
$createBase = $sbas_id = $base->get_sbas_id();
}
catch (Exception $e)
{
$error[] = $e->getMessage();
}
}
catch (Exception $e)
{
$error[] = _('Database does not exists or can not be accessed');
}
}
}
elseif ($parm['new_settings'] && $parm['new_hostname'] && $parm['new_port']
&& $parm['new_user'] && $parm['new_password']
&& $parm['new_dbname'] && $parm['new_data_template'])
{
if (p4string::hasAccent($parm['new_dbname']))
{
$error[] = _('Database name can not contains special characters');
}
if (count($error) === 0)
{
try
{
$data_template = new system_file($registry->get('GV_RootPath') . 'lib/conf.d/data_templates/' . $parm['new_data_template'] . '.xml');
$connbas = new connection_pdo('databox_creation', $parm['new_hostname'], $parm['new_port'], $parm['new_user'], $parm['new_password'], $parm['new_dbname'], array(), $appbox->get_registry());
$base = databox::create($appbox, $connbas, $data_template, $registry);
$base->registerAdmin($user_obj);
$createBase = $sbas_id = $base->get_sbas_id();
}
catch (Exception $e)
{
$error[] = $e->getMessage();
}
}
}
}
elseif ($parm['mount_base'])
{
if (!$parm['new_settings'] && $parm['new_dbname'])
{
if (p4string::hasAccent($parm['new_dbname']))
$error[] = _('Database name can not contains special characters');
if (count($error) === 0)
{
try
{
$configuration = \Alchemy\Phrasea\Core\Configuration::build();
$connexion = $configuration->getConnexion();
$hostname = $connexion->get('host');
$port = $connexion->get('port');
$user = $connexion->get('user');
$password = $connexion->get('password');
$appbox->get_connection()->beginTransaction();
$base = databox::mount($appbox, $hostname, $port, $user, $password, $parm['new_dbname'], $registry);
$base->registerAdmin($user_obj);
$mountBase = true;
$appbox->get_connection()->commit();
}
catch (Exception $e)
{
$appbox->get_connection()->rollBack();
$error[] = $e->getMessage();
}
}
}
elseif ($parm['new_settings'] && $parm['new_hostname'] && $parm['new_port'] && $parm['new_user']
&& $parm['new_password'] && $parm['new_dbname'])
{
if (p4string::hasAccent($parm['new_dbname']))
$error[] = 'No special chars in dbname';
if (count($error) === 0)
{
try
{
$appbox->get_connection()->beginTransaction();
$base = databox::mount($appbox, $parm['new_hostname'], $parm['new_port'], $parm['new_user'], $parm['new_password'], $parm['new_dbname'], $registry);
$base->registerAdmin($user_obj);
$appbox->get_connection()->commit();
}
catch (Exception $e)
{
$appbox->get_connection()->rollBack();
$error[] = $e->getMessage() . '@' . $e->getFile() . $e->getLine();
}
}
}
}
}
$upgrade_available = false;
if ($appbox->upgradeavailable())
$upgrade_available = true;
$sbas_ids = array_merge(
array_keys($user_obj->ACL()->get_granted_sbas(array('bas_manage')))
, array_keys($user_obj->ACL()->get_granted_sbas(array('bas_modify_struct')))
);
$hasRightsMountDB = count($sbas_ids) > 0;
$sbas = array();
foreach ($sbas_ids as $sbas_id)
{
$version = 'unknown';
$sbas[$sbas_id] = '
' . ' (Unreachable server)';
try
{
$databox = databox::get_instance($sbas_id);
$version = $databox->get_version();
if ($databox->upgradeavailable())
$upgrade_available = true;
$sbas[$sbas_id] = '
' . phrasea::sbas_names($sbas_id)
. ' (version ' . $version . ') MySQL ' . $databox->get_connection()->server_info();
}
catch (Exception $e)
{
}
}
?>
Bases actuelles :
0)
{
foreach ($sbas as $k => $v)
{
?>
-
- None
is_admin() === true)
{
?>
getVersion()->getNumber() ?>
getVersion()->getNumber() ?>