You are here

public function miniorange_samlController::miniorange_saml_feedback_func in SAML SP 2.0 Single Sign On (SSO) - SAML Service Provider 8

1 string reference to 'miniorange_samlController::miniorange_saml_feedback_func'
miniorange_saml.routing.yml in ./miniorange_saml.routing.yml
miniorange_saml.routing.yml

File

src/Controller/miniorange_samlController.php, line 39
Contains \Drupal\miniorange_saml\Controller\DefaultController.

Class

miniorange_samlController
Default controller for the miniorange_saml module.

Namespace

Drupal\miniorange_saml\Controller

Code

public function miniorange_saml_feedback_func() {
  if (isset($_POST['email']) && $_POST['email'] !== "") {
    $modules_info = \Drupal::service('extension.list.module')
      ->getExtensionInfo('miniorange_saml');
    $modules_version = $modules_info['version'];
    $res = json_encode($_POST);
    $outarr = json_decode($res, TRUE);
    $_SESSION['mo_other'] = "False";
    $reason = $outarr['reason'];
    $q_feedback = $outarr['q_feedback'];
    $message = 'Reason: ' . $reason . '<br>Feedback: ' . $q_feedback;
    $email = \Drupal::config('miniorange_saml.settings')
      ->get('miniorange_saml_customer_admin_email');
    if (empty($email)) {
      $email = $outarr['email'];
    }
    if (\Drupal::service('email.validator')
      ->isValid($email)) {
      $phone = \Drupal::config('miniorange_saml.settings')
        ->get('miniorange_saml_customer_admin_phone');
      $customerKey = \Drupal::config('miniorange_saml.settings')
        ->get('miniorange_saml_customer_id');
      $apikey = \Drupal::config('miniorange_saml.settings')
        ->get('miniorange_saml_customer_api_key');
      $mo_drupal_version = Utilities::mo_get_drupal_core_version();
      $fromEmail = $email;
      $subject = 'Drupal ' . $mo_drupal_version . ' SAML SP Free Module Feedback | ' . $modules_version;
      $query = '[Drupal ' . $mo_drupal_version . ' SAML SP Free | ' . $modules_version . ']: ' . $message;
      $content = '<div >Hello, <br><br>Company :<a href="' . $_SERVER['SERVER_NAME'] . '" target="_blank" >' . $_SERVER['SERVER_NAME'] . '</a><br><br>Phone Number :' . $phone . '<br><br>Email :<a href="mailto:' . $fromEmail . '" target="_blank">' . $fromEmail . '</a><br><br>Query :' . $query . '</div>';
      $fields = [
        'customerKey' => !isset($customerKey) || empty($customerKey) ? MiniorangeSAMLConstants::DEFAULT_CUSTOMER_ID : $customerKey,
        'sendEmail' => TRUE,
        'email' => [
          'customerKey' => !isset($customerKey) || empty($customerKey) ? MiniorangeSAMLConstants::DEFAULT_CUSTOMER_ID : $customerKey,
          'fromEmail' => $fromEmail,
          'fromName' => 'miniOrange',
          'toEmail' => MiniorangeSAMLConstants::SUPPORT_EMAIL,
          'toName' => MiniorangeSAMLConstants::SUPPORT_EMAIL,
          'subject' => $subject,
          'content' => $content,
        ],
      ];
      $url = MiniorangeSAMLConstants::FEEDBACK_API;
      $api = $customerKey == '' ? new MoAuthApi() : new MoAuthApi($customerKey, $apikey);
      $header = $api
        ->getHttpHeaderArray();
      $api
        ->makeCurlCall($url, $fields, $header);
    }
  }
  \Drupal::configFactory()
    ->getEditable('miniorange_saml.settings')
    ->clear('miniorange_saml_feedback')
    ->save();
  \Drupal::service('module_installer')
    ->uninstall([
    'miniorange_saml',
  ]);
  return new Response();
}