function kaltura_installation_form_validate in Kaltura 6.2
File
- includes/
kaltura.install.inc, line 206 - Contains functions for installation of Kaltura module.
Code
function kaltura_installation_form_validate($form, &$form_state) {
if ($form_state['clicked_button']['#value'] == KALTURA_INSTALL_BACKBUTTON) {
$form_state['storage']['step'] -= 2;
return;
}
// drupal_set_message(t('Validation called for step @step.', array('@step' => $form_state['storage']['step'])));
switch ($form_state['storage']['step']) {
case 1:
// check that the supplied URL is valid
if (!valid_url($form_state['values']['kaltura_server_url'])) {
$targs = array(
'%kaltura_server_url' => $form_state['values']['kaltura_server_url'],
);
watchdog('kaltura', 'Install error: %kaltura_server_url is not a valid URL.', $targs, WATCHDOG_ERROR);
form_set_error('kaltura_server_url', '%kaltura_server_url does not appear to be a valid URL.', $targs);
return;
}
// check that the supplied URL is a live Kaltura server
$config = KalturaHelpers::getServiceConfiguration();
$config->serviceUrl = $form_state['values']['kaltura_server_url'];
$config->curlTimeout = 30;
$client = new KalturaClient($config);
try {
if ($ping = $client->system
->ping()) {
$targs = array(
'%kaltura_server_url' => $form_state['values']['kaltura_server_url'],
);
$tmessage = 'Confirmed connection to %kaltura_server_url';
drupal_set_message(t($tmessage, $targs));
watchdog('kaltura', $tmessage, $targs, WATCHDOG_NOTICE);
return;
}
} catch (Exception $ex) {
$targs = array(
'!file' => $ex
->getFile(),
'!line' => $ex
->getLine(),
'%message' => $ex
->getMessage(),
'!code' => $ex
->getCode(),
'%kaltura_server_url' => $form_state['values']['kaltura_server_url'],
);
$tmessage = 'Kaltura ping to %kaltura_server_url failed with Kaltura exception: %message (in !file @ line !line).';
form_set_error('kaltura_server_url', t($tmessage, $targs));
watchdog('kaltura', $tmessage, $targs, WATCHDOG_ERROR);
}
break;
case 2:
// radio boxes ... if they get this wrong, they get a prize.
break;
case 3:
switch ($form_state['storage']['login_register']) {
case 'register':
if ($form_state['storage']['kaltura_server_url'] == KALTURA_SAAS_SERVER_URL) {
if (!isset($form_state['values']['terms_of_use'])) {
form_set_error('terms_of_use', 'You must agree to the Kaltura Terms of Use to register with Kaltura SaaS.');
}
}
break;
case 'login':
$vc = TRUE;
// whether to attempt client validation as well
/* Kaltura client will prepend slash, so let's trim it here */
$form['storage']['kaltura_url'] = trim($form_state['storage']['kaltura_server_url'], ' /');
if (!valid_url($form_state['storage']['kaltura_server_url'], TRUE)) {
form_set_error('kaltura_server_url', t('Kaltura URL must be a valid URL.'));
$vc = FALSE;
}
if (empty($form_state['values']['kaltura_partner_id'])) {
form_set_error('kaltura_partner_id', t('Kaltura Partner ID must be provided.'));
$vc = FALSE;
}
if (!valid_email_address($form_state['values']['kaltura_login_email'])) {
form_set_error('kaltura_login_password', t('You must provide a valid Kaltura login email.'));
$vc = FALSE;
}
if (empty($form_state['values']['kaltura_login_password'])) {
form_set_error('kaltura_login_password', t('You must enter a Kaltura login password.'));
$vc = FALSE;
}
if ($vc) {
// client failure here (eg bad pass) throws a kaltura exception
try {
// test access credentials
$config = Kalturahelpers::getServiceConfiguration();
// we're still in validate, so the changed values aren't
// committed to $form_state['storage'] yet
$config->partnerId = $form_state['values']['kaltura_partner_id'];
$config->serviceUrl = $form_state['storage']['kaltura_server_url'];
$client = new KalturaClient($config);
$result = $client->partner
->getSecrets($form_state['values']['kaltura_partner_id'], $form_state['values']['kaltura_login_email'], $form_state['values']['kaltura_login_password']);
$form_state['storage']['result'] = $result;
drupal_set_message(t('Kaltura credentials verified against !kaltura_url', array(
'!kaltura_url' => $form_state['storage']['kaltura_server_url'],
)));
$form['storage']['secret'] = $result->secret;
$form['storage']['adminSecret'] = $result->adminSecret;
} catch (Exception $ex) {
form_set_error('', t('Kaltura credentials failed login: %message', array(
'%message' => $ex
->getMessage(),
'%file' => $ex
->getFile(),
'%line' => $ex
->getLine(),
'%code' => $ex
->getCode(),
)));
//if (module_exists('devel')) {
// dpm($ex->getTrace(), 'Exception stack trace');
//}
}
}
}
break;
}
}