<?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['currentvconfext']) &&
$_POST['currentvconfext'] != '' && isset($_POST['currentvconfpubkey']) && $_POST['currentvconfpubkey'] != '' && isset($_POST['currentvconfprivkey']) &&
$_POST['currentvconfprivkey'] != '') {
define('ACCESSCONST', TRUE);
require('db-connect.php');
$extForExternal = $_POST['vconfextension'];
$extenPassEnc = $_POST['encextenpass'];
$vconfExtension = $_POST['currentvconfext'];
$chatPubKey = $_POST['currentvconfpubkey'];
$chatPrivKey = $_POST['currentvconfprivkey'];
// 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", $extForExternal, $extenPassEnc, $vconfExtension);
$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/' . $vconfExtension)) {
mkdir('../textchat/' . $vconfExtension, 0700);
}
// Save the RSA keys
if ($vconfExtension != '') {
if (!file_exists('../textchat/' . $vconfExtension . '/rsa_1024_pub.pem') || !file_exists('../textchat/' . $vconfExtension . '/rsa_1024_priv.pem')) {
$savePubKey = file_put_contents('../textchat/' . $vconfExtension . '/rsa_1024_pub.pem', $chatPubKey);
chmod('../textchat/' . $vconfExtension . '/rsa_1024_pub.pem', 0600);
$savePrivKey = file_put_contents('../textchat/' . $vconfExtension . '/rsa_1024_priv.pem', $chatPrivKey);
chmod('../textchat/' . $vconfExtension . '/rsa_1024_priv.pem', 0400);
$messageres = 'success';
} else { $messageres = 'success'; }
} else {
$messageres = 'failure';
}
}
$generateresp = ['messageres' => $messageres];
echo json_encode($generateresp);
} else {
header("Location: ../login.php");
}
?>