public function MiniorangeOAuthClientCustomerSetup::miniorange_oauth_client_validate_otp_submit in Drupal OAuth & OpenID Connect Login - OAuth2 Client SSO Login 8
File
- src/
Form/ MiniorangeOAuthClientCustomerSetup.php, line 297 - Contains \Drupal\miniorange_oauth_client\Form\MiniorangeOAuthClientCustomerSetup.
Class
Namespace
Drupal\miniorange_oauth_client\FormCode
public function miniorange_oauth_client_validate_otp_submit(&$form, $form_state) {
$otp_token = trim($form['markup_top_vt_start']['miniorange_oauth_client_customer_otp_token']['#value']);
if ($otp_token == NULL) {
\Drupal::messenger()
->addMessage(t('Please enter OTP first.'), 'error');
return;
}
$username = \Drupal::config('miniorange_oauth_client.settings')
->get('miniorange_oauth_client_customer_admin_email');
$phone = \Drupal::config('miniorange_oauth_client.settings')
->get('miniorange_oauth_client_customer_admin_phone');
$tx_id = \Drupal::config('miniorange_oauth_client.settings')
->get('miniorange_oauth_client_tx_id');
$customer_config = new MiniorangeOAuthClientCustomer($username, $phone, NULL, $otp_token);
$validate_otp_response = json_decode($customer_config
->validateOtp($tx_id));
if ($validate_otp_response->status == 'SUCCESS') {
\Drupal::configFactory()
->getEditable('miniorange_oauth_client.settings')
->clear('miniorange_oauth_client_tx_id')
->save();
$password = \Drupal::config('miniorange_oauth_client.settings')
->get('miniorange_oauth_client_customer_admin_password');
$customer_config = new MiniorangeOAuthClientCustomer($username, $phone, $password, NULL);
$create_customer_response = json_decode($customer_config
->createCustomer());
if ($create_customer_response->status == 'SUCCESS') {
$current_status = 'PLUGIN_CONFIGURATION';
\Drupal::configFactory()
->getEditable('miniorange_oauth_client.settings')
->set('miniorange_oauth_client_status', $current_status)
->save();
\Drupal::configFactory()
->getEditable('miniorange_oauth_client.settings')
->set('miniorange_oauth_client_customer_admin_email', $username)
->save();
\Drupal::configFactory()
->getEditable('miniorange_oauth_client.settings')
->set('miniorange_oauth_client_customer_admin_phone', $phone)
->save();
\Drupal::configFactory()
->getEditable('miniorange_oauth_client.settings')
->set('miniorange_oauth_client_customer_admin_token', $create_customer_response->token)
->save();
\Drupal::configFactory()
->getEditable('miniorange_oauth_client.settings')
->set('miniorange_oauth_client_customer_id', $create_customer_response->id)
->save();
\Drupal::configFactory()
->getEditable('miniorange_oauth_client.settings')
->set('miniorange_oauth_client_customer_api_key', $create_customer_response->apiKey)
->save();
\Drupal::messenger()
->addMessage(t('Account created successfully.'));
}
else {
if (trim($create_customer_response->message) == 'Email is not enterprise email.' || $create_customer_response->status == "INVALID_EMAIL_QUICK_EMAIL") {
\Drupal::messenger()
->addMessage(t('There was an error creating an account for you. You may have entered an invalid Email-Id
<strong>(We discourage the use of disposable emails) </strong>
<br>Please try again with a valid email.'), 'error');
\Drupal::configFactory()
->getEditable('miniorange_oauth_client.settings')
->set('miniorange_oauth_client_status', 'CUSTOMER_SETUP')
->save();
}
else {
\Drupal::messenger()
->addMessage(t('Error in creating an account for you. Please try again.'), 'error');
}
}
}
else {
\Drupal::messenger()
->addMessage(t('Invalid OTP provided. Please enter the correct OTP'), 'error');
}
}