<?php
/**
 *  Copyright (C) 2021  Double Bastion LLC
 *
 *  This file is part of Roundpin, which is licensed under the
 *  GNU Affero General Public License Version 3.0. The license terms
 *  are detailed in the "LICENSE.txt" file located in the root directory.
 */

session_start();
 // header('Set-Cookie: PHPSESSID= ' . session_id() . '; SameSite=strict; Secure=true; HttpOnly=true;');

if (isset($_POST['vconfextension']) && $_POST['vconfextension'] != '' && isset($_POST['encextenpass']) && $_POST['encextenpass'] != '' && isset($_POST['conferenceext']) && 
    $_POST['conferenceext'] != ''  && isset($_POST['currentextension']) && $_POST['currentextension'] != '' && isset($_POST['currentchatpubkey']) && $_POST['currentchatpubkey'] != '') {

       define('ACCESSCONST', TRUE);

       require('db-connect.php');

       $vconfExtension = $_POST['vconfextension'];
       $extenPassEnc = $_POST['encextenpass'];
       $conferenceExt = $_POST['conferenceext'];

       $sipusersendrec = $_POST['currentextension'];
       $chatPubKey = $_POST['currentchatpubkey'];

       // Check if the received external user extension, the corresponding encrypted password and the extension of the conference, match the data in the 'external_users' table
       $query = $mysqli->prepare("SELECT id, exten_for_external, exten_for_ext_pass, conf_extension FROM external_users WHERE exten_for_external = ? AND exten_for_ext_pass = ? AND conf_extension = ?");
       $query->bind_param("sss", $vconfExtension, $extenPassEnc, $conferenceExt);
       $query->execute();
       $extqueryres = $query->get_result()->fetch_array();

       if (!$extqueryres) {

           http_response_code(400);
           exit();

       } else {

	       // Create the necessary directory if it doesn't exist
	       if (!is_dir('../textchat/' . $sipusersendrec)) {
		    mkdir('../textchat/' . $sipusersendrec, 0700);
	       }

	       // Save the RSA public key
	       if ($sipusersendrec != '') {

		   $savePubKey = file_put_contents('../textchat/' . $sipusersendrec . '/rsa_1024_pub.pem', $chatPubKey);
		   chmod('../textchat/' . $sipusersendrec . '/rsa_1024_pub.pem', 0600);
		   $messageres = 'success';

	       } else { 
		   $messageres = 'failure';
	       }

       }

       $generateresp = ['messageres' => $messageres];

       echo json_encode($generateresp);

} else {
    header("Location: ../login.php");
}

?>