<?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['s_ajax_call']) && ($_POST['s_ajax_call'] == $_SESSION['validate_s_access'])) {
define('ACCESSCONST', TRUE);
require('db-connect.php');
$username = $_POST['username'];
$vconfsipuser = $_POST['vconfsipuser'];
$vconfExtension = $_POST['vconfextension'];
// Get the user role and the list of groups to which the current user belongs, from the 'app_users' table
$querygr = $mysqli->prepare("SELECT id, userrole, username, user_groups FROM app_users WHERE BINARY username = ?");
$querygr->bind_param("s", $username);
$querygr->execute();
$querygrres = $querygr->get_result()->fetch_assoc();
$userrole = $querygrres['userrole'];
if ($userrole != 'superadmin') {
$usergroupsall = $querygrres['user_groups'];
$usergroupsarr = explode("|", $usergroupsall);
array_shift($usergroupsarr);
array_pop($usergroupsarr);
// Get the list of groups whose users have access to the current video conference
$querycont = $mysqli->prepare("SELECT id, video_conf_extension, limit_to_groups FROM conferences_video WHERE video_conf_extension = ?");
$querycont->bind_param("s", $vconfExtension);
$querycont->execute();
$querytcagr = $querycont->get_result()->fetch_assoc();
$querytcagrlst = $querytcagr['limit_to_groups'];
$querytcagrarr = explode("|", $querytcagrlst);
array_shift($querytcagrarr);
array_pop($querytcagrarr);
$chck = 0;
foreach ($usergroupsarr as $key => $arrval) {
if (in_array($arrval, $querytcagrarr)) { $chck++; }
}
if ($chck > 0) { $restrictmessage = 'success'; } else { $restrictmessage = 'failure'; }
} else { $restrictmessage = 'success'; }
// 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", $vconfsipuser, $vconfExtension);
$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", $vconfsipuser, $vconfExtension);
$querydel->execute();
}
} else { $banmessage = 'success'; }
$response = array('restrict' => $restrictmessage, 'notbanned' => $banmessage);
echo json_encode($response);
} else {
header("Location: ../login.php");
}
?>