QuartzMap/admin/registration.php

217 lines
5.6 KiB
PHP
Raw Normal View History

2024-03-16 23:03:30 +00:00
<?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>