<?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['crsipusername']) && $_POST['crsipusername'] != '' && isset($_POST['encextenpass']) && $_POST['encextenpass'] != '' &&
    isset($_POST['crvconfextension']) && $_POST['crvconfextension'] != '') {

    define('ACCESSCONST', TRUE);

    require('db-connect.php');

    $crsipusername = $_POST['crsipusername'];
    $extenPassEnc = $_POST['encextenpass'];
    $conferenceExt = $_POST['crvconfextension'];

    // 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 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", $crsipusername, $extenPassEnc, $conferenceExt);
    $query->execute();
    $extqueryres = $query->get_result()->fetch_array();

    if (!$extqueryres) {

        http_response_code(400);
        exit();

    } else {

        // Check if the current user has been banned from accessing this conference
        $queryselck = $mysqli->prepare("SELECT banned_sipusername, conf_extension, banned_until FROM banned_users WHERE banned_sipusername = ? AND conf_extension = ?");
        $queryselck->bind_param("ss", $crsipusername, $conferenceExt);
        $queryselck->execute();
        $userdatafromdbck = $queryselck->get_result()->fetch_assoc();

        if ($userdatafromdbck) {

            $currentDate = new DateTime(date("Y-m-d H:i:s"));
            $banDate = new DateTime($userdatafromdbck['banned_until']);

            if ($currentDate <= $banDate) {
                $banmessage = 'failure'; 
            } else { 
                $banmessage = 'success';

                // Remove the database record, since the ban time has expired
                $querydel = $mysqli->prepare("DELETE FROM banned_users WHERE banned_sipusername = ? AND conf_extension = ?");
                $querydel->bind_param("ss", $crsipusername, $conferenceExt);
                $querydel->execute();
            }

        } else { $banmessage = 'success'; }
    }

    $response = array('notbanned' => $banmessage);

    echo json_encode($response);

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

?>