<?php
    session_start();
		require('incl/const.php');
		require('class/user.php');
		require('class/access_groups.php');
		require('class/database.php');
		
    if(!isset($_SESSION['user']) || $_SESSION['user']->accesslevel != 'Admin') {
        header('Location: ../login.php');
    }
		
		$database = new Database(DB_HOST, DB_NAME, DB_USER, DB_PASS, DB_PORT, DB_SCMA);
    $dbconn = $database->getConn();

		$acc_obj = new access_group_Class($dbconn, $_SESSION['user']->id);
    $acc_grp = $acc_obj->getRowsArr();

    if(isset($_POST['submit'])&&!empty($_POST['submit'])){
			
			$usr_obj = new user_Class($dbconn, $_SESSION['user']->id);
			$_POST['ftp_user'] = '';
			if(empty($_POST['groups'])){
				$_POST['groups'] = array(1);	// give new admin Default group for now
			}

			$newId = $usr_obj->create($_POST);
			if($newId > 0){
				
				if($_POST['accesslevel'] == 'Admin'){
					
					$myuser_result = $usr_obj->getById($newId);
					$myuser = pg_fetch_assoc($myuser_result);
					pg_free_result($myuser_result);
					
					$email_user = explode('@', $_POST['email'])[0];
					$_POST['ftp_user'] = $email_user.$newId;
					
					user_Class::create_ftp_user($_POST['ftp_user'], $_POST['email'], $myuser['password']);
					
					// create def access group for new admin
					$def_grp = array('name' => $_POST['ftp_user'], 'userids' => array($newId));
					$acc_obj = new access_group_Class($dbconn, $newId);
					$grp_id = $acc_obj->create($def_grp);
					
					if($grp_id > 0){
						$_POST['id'] = $newId;
						$_POST['groups'] = array($grp_id);
						$usr_obj->update($_POST);
					}
				}
				
				header("Location: users.php");
			}else{
				echo "Something Went Wrong";
			}
    }

?>
<!DOCTYPE html>
<html dir="ltr" lang="en">

<head>
	<?php include("incl/meta.php"); ?>
	<link href="dist/css/table.css" rel="stylesheet">
	<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
	
	<script type="text/javascript">
		$(document).ready(function() {
			
			$(document).on("change", "#accesslevel", function() {
				var obj = $(this);
				const acc_level = obj.find('option:selected').text();
				
				if(acc_level == 'User'){
					$('#acc_grp_div').show(); $('#acc_grp_div').attr('required', true); 
				}else{
					$('#acc_grp_div').hide(); $('#acc_grp_div').attr('required', false); 
				}
			});
			
		});
	</script>
</head>

<body>
    
    <div id="main-wrapper" data-layout="vertical" data-navbarbg="skin5" data-sidebartype="full"
        data-sidebar-position="absolute" data-header-position="absolute" data-boxed-layout="full">

        <?php define('MENU_SEL', 'registration.php');
					include("incl/topbar.php");
					include("incl/sidebar.php");
				?>
        
        <div class="page-wrapper">
           
            <div class="page-breadcrumb" style="padding-left:30px; padding-right: 30px; padding-top:0px; padding-bottom: 0px">
                <div class="row align-items-center">
                    <div class="col-6">
                        <nav aria-label="breadcrumb">

                          </nav>
                        <h1 class="mb-0 fw-bold">Register New User</h1>
                    </div>
                    <div class="col-6">
                        <div class="text-end upgrade-btn">
                           




                        </div>
                    </div>
                </div>
            </div>
           
            <div class="container-fluid">

				<table class="table table-bordered">


					<tbody>

<form method="post">

    <div class="form-group">
      <label for="name">Name:</label>
      <input type="text" class="form-control" id="name" placeholder="Enter name" name="name" required>
    </div>

    <div class="form-group">
      <label for="email">Email:</label>
      <input type="email" class="form-control" id="email" placeholder="Enter email" name="email" required>
    </div>

    <div class="form-group">
      <label for="accesslevel">Access Level:</label>
      <select name="accesslevel" id="accesslevel">
				<option value="User">User</option>
				<?php if($_SESSION['user']->id == SUPER_ADMIN_ID) { // only super admin can create admins ?>
				<option value="Admin">Admin</option>
				<?php } ?>
			</select>
    </div>


		<div class="form-group" id="acc_grp_div">
			<fieldset>
			<legend>Access Groups:</legend>
			<?php
				foreach($acc_grp as $group_id => $name){ ?>
				<p>
					<input type="checkbox" name="groups[]" id="group_<?=$group_id?>" value="<?=$group_id?>"/>
					<label for="group_<?=$group_id?>" class="form-label"><?=$name?></label>
				</p>
			<?php } ?>
			</fieldset>
    </div>

    <div class="form-group">
      <label for="pwd">Password:</label>
      <input type="password" class="form-control" id="password" placeholder="Enter password" name="password">
    </div>

    <input type="submit" name="submit" class="btn btn-primary" value="Submit">
  </form>



					</tbody>
				</table>







               
                <div class="row">


                    <div class="col-6">
						<p>&nbsp;</p>
						<div id = "repThumbnail" class = "alert alert-danger">
   <a href = "#" class = "close" data-dismiss = "alert">&times;</a>
   <strong>Note:</strong> Be sure to set the Access Level for the user.
</div>



<script type = "text/javascript">
   $(function(){
      $(".close").click(function(){
         $("#repThumbnail").alert();
      });
   });
</script>
</div>
                </div>
               
            </div>
           
            <footer class="footer text-center">

            </footer>
            
        </div>
       
    </div>
   
    <script src="dist/js/sidebarmenu.js"></script>
    <script src="dist/js/custom.js"></script>
</body>

</html>