public function LockrMigrateForm::submitForm in Lockr 8.2
Same name and namespace in other branches
- 8.4 src/Form/LockrMigrateForm.php \Drupal\lockr\Form\LockrMigrateForm::submitForm()
- 8.3 src/Form/LockrMigrateForm.php \Drupal\lockr\Form\LockrMigrateForm::submitForm()
- 4.x src/Form/LockrMigrateForm.php \Drupal\lockr\Form\LockrMigrateForm::submitForm()
Form submission handler.
Parameters
array $form: An associative array containing the structure of the form.
\Drupal\Core\Form\FormStateInterface $form_state: The current state of the form.
Overrides FormInterface::submitForm
File
- src/
Form/ LockrMigrateForm.php, line 78
Class
Namespace
Drupal\lockr\FormCode
public function submitForm(array &$form, FormStateInterface $form_state) {
$cert_file = $this->state
->get('lockr.cert');
$cert_info = openssl_x509_parse(file_get_contents($cert_file));
$subject = $cert_info['subject'];
$dn = [
'countryName' => $subject['C'],
'stateOrProvinceName' => $subject['ST'],
'localityName' => $subject['L'],
'organizationName' => $subject['O'],
];
$site_client = $this->clientFactory
->getSiteClient();
try {
$result = $site_client
->createCert($dn);
} catch (LockrClientException $e) {
watchdog_exception('lockr', $e);
drupal_set_message('Please make sure that the current Lockr certificate is valid.', 'error');
return;
} catch (LockrServerException $e) {
watchdog_exception('lockr', $e);
drupal_set_message('Lockr encountered an unexpected server error, please try again.', 'error');
return;
}
$this->streamWrapperManager
->registerWrapper('private', PrivateStream::class, PrivateStream::getType());
$dir = 'private://lockr/prod';
mkdir($dir, 0700, TRUE);
$key_file = "{$dir}/key.pem";
$key_fd = fopen($key_file, 'w');
fwrite($key_fd, $result['key_text']);
fclose($key_fd);
chmod($key_file, 0600);
$cert_file = "{$dir}/crt.pem";
$cert_fd = fopen($cert_file, 'w');
fwrite($cert_fd, $result['cert_text']);
fclose($cert_fd);
chmod($cert_file, 0600);
$pair_file = "{$dir}/pair.pem";
$pair_fd = fopen($pair_file, 'w');
fwrite($pair_fd, $result['key_text']);
fwrite($pair_fd, $result['cert_text']);
fclose($pair_fd);
chmod($pair_file, 0600);
$private_stream = new PrivateStream();
$private_stream
->setUri("{$dir}/pair.pem");
$this->state
->set('lockr.cert', $private_stream
->realpath());
$this->state
->set('lockr.custom', TRUE);
_lockr_rmtree('private://lockr/dev');
}