<?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.
 */

define('RESTRICTED', TRUE);

include 'install-signup-check.php';

if ($installcheck == true) {

 session_start();

 if ($_SESSION['validateaccess'] == "accessallowed") {

   if(isset($_POST['submitadminbttn'])) {

     if (isset($_POST['adminuser']) && $_POST['adminuser'] != '' && isset($_POST['adminuserpassword']) &&
         $_POST['adminuserpassword'] != '' && isset($_POST['adminuseremail']) && $_POST['adminuseremail'] != '') {

         $adminuser = $_POST['adminuser'];
         $adminuserpass = password_hash($_POST['adminuserpassword'], PASSWORD_DEFAULT);
         $adminuseremail = $_POST['adminuseremail'];

         define('ACCESSCONST', TRUE);

         require('db-connect.php');

         // Create table for Roundpin users
         $query1 = " CREATE TABLE IF NOT EXISTS app_users (
		        id                      INT UNSIGNED AUTO_INCREMENT  PRIMARY KEY,
                        userrole                VARCHAR (150) DEFAULT NULL,
		        username                VARCHAR (150) DEFAULT NULL,
		        password                VARCHAR (250) DEFAULT NULL,
		        emailaddress            VARCHAR (150) DEFAULT NULL,
		        registered              SMALLINT      DEFAULT NULL,
		        token                   VARCHAR (150) DEFAULT NULL,
		        temporarypass           VARCHAR (50)  DEFAULT NULL,
		        wss_server              VARCHAR (150) DEFAULT NULL,
		        web_socket_port         INT           DEFAULT NULL,
		        server_path             VARCHAR (10)  DEFAULT NULL,
		        profile_name            VARCHAR (100) DEFAULT NULL,
		        sip_username            VARCHAR (100) DEFAULT NULL,
		        sip_password            VARCHAR (250) DEFAULT NULL,
		        stun_server             VARCHAR (300) DEFAULT NULL,
		        audio_output_id         VARCHAR (100) DEFAULT NULL,
		        video_src_id            VARCHAR (500) DEFAULT NULL,
		        video_height            VARCHAR (10)  DEFAULT NULL,
		        frame_rate              SMALLINT      DEFAULT NULL,
		        aspect_ratio            VARCHAR (10)  DEFAULT NULL,
		        video_orientation       VARCHAR (100) DEFAULT NULL,
		        audio_src_id            VARCHAR (500) DEFAULT NULL,
		        auto_gain_control       VARCHAR (10)  DEFAULT NULL,
		        echo_cancellation       VARCHAR (10)  DEFAULT NULL,
		        noise_suppression       VARCHAR (10)  DEFAULT NULL,
		        ring_output_id          VARCHAR (100) DEFAULT NULL,
                        video_conf_extension    VARCHAR (100) DEFAULT NULL,
                        video_conf_window_width VARCHAR (10)  DEFAULT NULL,
		        profile_picture         LONGTEXT      DEFAULT NULL,
		        notifications           SMALLINT      DEFAULT NULL,
                        use_roundcube           SMALLINT      DEFAULT NULL,
                        rcdomain                VARCHAR (300) DEFAULT NULL,
                        rcbasicauthuser         VARCHAR (300) DEFAULT NULL,
                        rcbasicauthpass         VARCHAR (300) DEFAULT NULL,
                        rcuser                  VARCHAR (300) DEFAULT NULL,
                        rcpassword              VARCHAR (300) DEFAULT NULL,
                        enabled                 SMALLINT      DEFAULT NULL
		     ); ";

         $result1 = $mysqli->query($query1);

         $userrole = 'superadmin';
         $registeredcheck = 1;
         $enabled = 1;

         $query2 = $mysqli->prepare("INSERT INTO app_users (userrole, username, password, emailaddress, registered, enabled) VALUES (?, ?, ?, ?, ?, ?);");
         $query2->bind_param("ssssii", $userrole, $adminuser, $adminuserpass, $adminuseremail, $registeredcheck, $enabled);
         $query2->execute();

         // Create table for contacts of Roundpin users
         $query3 = " CREATE TABLE IF NOT EXISTS contacts (
		          id                INT UNSIGNED AUTO_INCREMENT  PRIMARY KEY,
		          user_id           INT UNSIGNED      NOT NULL,
		          contact_name      VARCHAR (300)     DEFAULT NULL,
		          contact_desc      VARCHAR (300)     DEFAULT NULL,
		          extension_number  VARCHAR (50)      DEFAULT NULL,
		          contact_mobile    VARCHAR (50)      DEFAULT NULL,
		          contact_num1      VARCHAR (50)      DEFAULT NULL,
		          contact_num2      VARCHAR (50)      DEFAULT NULL,
		          contact_fax       VARCHAR (50)      DEFAULT NULL,
		          contact_email     VARCHAR (300)     DEFAULT NULL,
                          profile_picture_c LONGTEXT          DEFAULT NULL,
                          groups            VARCHAR (1500)    DEFAULT NULL,
                          date_added        DATETIME          DEFAULT NULL,
                          date_modified     DATETIME          DEFAULT NULL,
                          CONSTRAINT `fk_user_id` FOREIGN KEY (`user_id`) REFERENCES `app_users` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT
                     ); ";

         $result3 = $mysqli->query($query3);

         // Create table for external users of video conference
         $query4 = " CREATE TABLE IF NOT EXISTS external_users (
		          id                 INT UNSIGNED  AUTO_INCREMENT  PRIMARY KEY,
		          userid             INT UNSIGNED      NOT NULL,
		          exten_for_external VARCHAR (150)     DEFAULT NULL,
		          exten_for_ext_pass VARCHAR (2000)    DEFAULT NULL,
		          conf_access_link   LONGTEXT          DEFAULT NULL,
		          CONSTRAINT `fk_userid` FOREIGN KEY (`userid`) REFERENCES `app_users` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT
                     ); ";
         $result4 = $mysqli->query($query4);

         $_SESSION['validateaccess'] = "noaccessallowed";

         $_SESSION['instcompleteaccess'] = "instaccess";

         header("Location: roundpin-inst-complete.php");

     }
  }

?>

<html>

<head>
  <title>Roundpin Setup</title>

  <link rel="stylesheet" href="css/setup.min.css">
  <script type="text/javascript" src="js/jquery-3.3.1.min.js"></script>
  <script type="text/javascript" src="js/roundpin-setup.min.js"></script>

</head>

<body>

  <div id="mainarea">

    <img class="logosetuppage" src="images/login-logo.svg" />

    <h3 style="text-align:center;">Roundpin Setup</h3><br>

    <img class="setupStage" src="images/roundpin-setup-stages-2.svg" />

    <form id="admincredform" action="" method="POST">

       <label for="adminuser" class="fieldlabels">Superadmin username:</label><br>
       <input type="text" id="adminuser" class="textinput" name="adminuser"/><br><br>

       <label for="adminuserpassword" class="fieldlabels">Superadmin password:</label><br>
       <input type="password" id="adminuserpassword" class="textinput" name="adminuserpassword" title="The password should be
       at least 10 characters long, it should contain at least one letter, at least one digit and at least one special character"/><br><br>

       <label for="adminuseremail" class="fieldlabels">Superadmin email address:</label><br>
       <input type="text" id="adminuseremail" class="textinput" name="adminuseremail"/><br><br>

       <input type="submit" id="submitadminbttn" name="submitadminbttn" value="Submit" />

   </form>

  </div>

</body>

</html>

<?php
 }
}

?>