You are here

public function miniorange_oauth_clientController::miniorange_oauth_client_feedback_func in Drupal OAuth & OpenID Connect Login - OAuth2 Client SSO Login 8

1 string reference to 'miniorange_oauth_clientController::miniorange_oauth_client_feedback_func'
miniorange_oauth_client.routing.yml in ./miniorange_oauth_client.routing.yml
miniorange_oauth_client.routing.yml

File

src/Controller/miniorange_oauth_clientController.php, line 20
Contains \Drupal\miniorange_oauth_client\Controller\DefaultController.

Class

miniorange_oauth_clientController

Namespace

Drupal\miniorange_oauth_client\Controller

Code

public function miniorange_oauth_client_feedback_func() {
  global $base_url;
  if (isset($_GET['miniorange_feedback_submit'])) {
    $modules_info = \Drupal::service('extension.list.module')
      ->getExtensionInfo('miniorange_oauth_client');
    $modules_version = $modules_info['version'];
    $_SESSION['mo_other'] = "False";
    $reason = $_GET['deactivate_plugin'];
    $q_feedback = $_GET['query_feedback'];
    $message = 'Reason: ' . $reason . '<br>Feedback: ' . $q_feedback;
    $url = 'https://login.xecurify.com/moas/api/notify/send';
    $ch = curl_init($url);
    $email = \Drupal::config('miniorange_oauth_client.settings')
      ->get('miniorange_oauth_client_customer_admin_email');
    if (empty($email)) {
      $email = $_GET['miniorange_feedback_email'];
    }
    $phone = \Drupal::config('miniorange_oauth_client.settings')
      ->get('miniorange_oauth_client_customer_admin_phone');
    $customerKey = \Drupal::config('miniorange_oauth_client.settings')
      ->get('miniorange_oauth_client_customer_id');
    $apikey = \Drupal::config('miniorange_oauth_client.settings')
      ->get('miniorange_oauth_client_customer_api_key');
    if ($customerKey == '') {
      $customerKey = "16555";
      $apikey = "fFd2XcvTGDemZvbw1bcUesNJWEqKbbUq";
    }
    $currentTimeInMillis = self::get_oauth_timestamp();
    $stringToHash = $customerKey . $currentTimeInMillis . $apikey;
    $hashValue = hash("sha512", $stringToHash);
    $customerKeyHeader = "Customer-Key: " . $customerKey;
    $timestampHeader = "Timestamp: " . $currentTimeInMillis;
    $authorizationHeader = "Authorization: " . $hashValue;
    $fromEmail = $email;
    $subject = 'Drupal ' . \DRUPAL::VERSION . ' OAuth Client Module Feedback | ' . $modules_version;
    $query = '[Drupal ' . Utilities::mo_get_drupal_core_version() . ' OAuth Client | ' . $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 = array(
      'customerKey' => $customerKey,
      'sendEmail' => true,
      'email' => array(
        'customerKey' => $customerKey,
        'fromEmail' => $fromEmail,
        'fromName' => 'miniOrange',
        'toEmail' => 'drupalsupport@xecurify.com',
        'toName' => 'drupalsupport@xecurify.com',
        'subject' => $subject,
        'content' => $content,
      ),
    );
    $field_string = json_encode($fields);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($ch, CURLOPT_ENCODING, "");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_AUTOREFERER, true);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

    # required for https urls
    curl_setopt($ch, CURLOPT_MAXREDIRS, 10);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(
      'Content-Type: application/json',
      $customerKeyHeader,
      $timestampHeader,
      $authorizationHeader,
    ));
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $field_string);
    $content = curl_exec($ch);
    if (curl_errno($ch)) {
      return json_encode(array(
        "status" => 'ERROR',
        'statusMessage' => curl_error($ch),
      ));
    }
    curl_close($ch);
  }
  \Drupal::configFactory()
    ->getEditable('miniorange_oauth_client.settings')
    ->set('miniorange_oauth_uninstall_status', 1)
    ->save();
  \Drupal::service('module_installer')
    ->uninstall([
    'miniorange_oauth_client',
  ]);
  if (!empty(\Drupal::config('miniorange_oauth_client.settings')
    ->get('miniorange_oauth_client_base_url'))) {
    $baseUrlValue = \Drupal::config('miniorange_oauth_client.settings')
      ->get('miniorange_oauth_client_base_url');
  }
  else {
    $baseUrlValue = $base_url;
  }
  $uninstall_redirect = $baseUrlValue . '/admin/modules';
  return new RedirectResponse($uninstall_redirect);
}