hanze/iwa-panda1

views/alter_user.php in tak
Repositories | Summary | Log | Files

alter_user.php (5944B) download


  1<!DOCTYPE html>
  2<html lang="eng">
  3
  4<head>
  5	<title>User toevoegen</title>
  6	<!-- Bootstrap CSS -->
  7	<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css">
  8    <link rel="stylesheet" type="text/css" href="/css/homepage.css">
  9</head>
 10<?php
 11use Lollipop\DatabaseObject;
 12use Lollipop\SQLDatabase;
 13	include "views/navbar.php";
 14	include "utils/autoloader.php";
 15	if(!in_array(1, $_SESSION['user_permissions'])){
 16	header('Location: /dashboard');
 17	exit;
 18	}
 19	$db = new Lollipop\SQLDatabase("86.92.67.21", "friedel", "hailiwa", "wap2");
 20	$msg = "";
 21	//select the available permissions from the database
 22	$all_p = $db->all(Permissions::class);
 23	$available_permissions = [];
 24	foreach($all_p as $tmp){
 25		$available_permissions[] = ['id' => $tmp->permission_id, 'name' => $tmp->permission_name];
 26	}
 27	//if not found set to empty if not GET
 28	$fname = "";
 29	$lname = "";
 30	$email = "";
 31	$user_permissions = [];
 32
 33	if($_SERVER["REQUEST_METHOD"] == "GET"){
 34		//if the get var isset and user is found in the database load data into forms
 35		if(!isset($_GET['email'])){
 36			echo"";
 37		}else{
 38			$get_email = $_GET['email'];
 39			$u = $db->get(User::class);
 40			$u->where("email", $get_email);
 41			if($u->email != null){
 42				$fname = $u->first_name;
 43				$lname = $u->last_name;
 44				$email = $u->email;
 45				$p = $db->all_where(Permission_user::class, array('user_id' => $u->user_id));
 46				foreach($p as $permission){
 47					$user_permissions[] = $permission->permission_id;
 48				}
 49			}
 50		}
 51	}
 52	if ($_SERVER["REQUEST_METHOD"] == "POST") {
 53        $errors = array(); // initialize an empty array to store errors
 54    
 55        // Check if voornaam is set and not empty
 56        if (isset($_POST['voornaam']) && !empty($_POST['voornaam'])) {
 57            $fname = $_POST['voornaam'];
 58        } else {
 59            $errors[] = "First name is required";
 60        }
 61    
 62        // Check if achternaam is set and not empty
 63        if (isset($_POST['achternaam']) && !empty($_POST['achternaam'])) {
 64            $lname = $_POST['achternaam'];
 65        } else {
 66            $errors[] = "Last name is required";
 67        }
 68    
 69        // Check if email is set and not empty
 70        if (isset($_POST['email']) && !empty($_POST['email'])) {
 71            $email = $_POST['email'];
 72        } else {
 73            $errors[] = "E-mail is required";
 74        }
 75        
 76        // Check if permissions is set
 77        if (isset($_POST['permissions'])) {
 78            $permissions = $_POST['permissions'];
 79        } 
 80
 81        // Check if there are any errors
 82        if (count($errors) > 0) {
 83            // Print out the errors
 84            foreach ($errors as $error) {
 85                $msg .= $error . "<br>";
 86            }
 87        } else {
 88            //create a database object with table user
 89            $u = $db->get(User::class);
 90			$u->where("email",  $email);
 91			$user_id = $u->user_id;
 92            //check if email already exists
 93            if($u->email == null){
 94                $msg = "this user does not exist " . $email;
 95            }else{
 96                $succes = false;
 97                //set new user data
 98                $u->email = $email;
 99				$u->user_id = $user_id;
100                $u->first_name = $fname;
101                $u->last_name = $lname;
102                //add user with the add function
103                if( $u->save()){
104                    $succes = true;
105                };
106
107				$p = $db->get(Permission_user::class);
108				//delete all permissions
109				foreach($available_permissions as $available){
110					$p->user_id = $user_id;
111					$p->permission_id = $available['id'];
112					$p->delete();
113				}
114
115				//add permissions
116				if(isset($permissions)){
117					foreach($permissions as $keep){
118						$p->user_id = $user_id;
119						$p->permission_id = (int)$keep;
120						$p->add();
121					}
122				}
123                if($succes){
124                    $msg  = "succes! changes saved to the database";
125                }
126            }
127        }
128		//if the get var isset and user is found in the database load data into forms
129		if(!isset($_GET['email'])){
130			echo"";
131		}else{
132			$get_email = $_GET['email'];
133			$u = $db->get(User::class);
134			$u->where("email",  $email);
135			if($u->email != null){
136				$fname = $u->first_name;
137				$lname = $u->last_name;
138				$email = $u->email;
139				$p = $db->all_where(Permission_user::class, array('user_id' => $u->user_id));
140				foreach($p as $permission){
141					$user_permissions[] = $permission->permission_id;
142				}
143			}
144		}
145    }
146?>
147
148<body>
149	<div class="container">
150		<h1>Alter user</h1>
151		<form action="alter_user?email=<?php echo $email;?>" method="post">
152			<div class="mb-3">
153				<label for="voornaam" class="form-label"><b>First name:</b></label>
154				<input type="text" class="form-control" name="voornaam" id="voornaam" placeholder="First name" value=<?php echo$fname?>>
155			</div>
156			<div class="mb-3">
157				<label for="achternaam" class="form-label"><b>Last name:</b></label>
158				<input type="text" class="form-control" name="achternaam" id="achternaam" placeholder="Last name" value=<?php echo$lname?>>
159			</div>
160			<div class="mb-3">
161				<label for="email" class="form-label"><b>Email:</b></label>
162				<input type="text" class="form-control" name="email" id="email" placeholder="Email" value=<?php echo$email?>>
163			</div>
164			<p>Please select the user permissions:</p>
165			<?php 
166				foreach($available_permissions as $db_permission){		
167					echo "<div class=\"mb-3 form-check\">" .
168					"<input type=\"checkbox\" class=\"form-check-input\" name=\"permissions[]\" value=" . $db_permission['id'] . "\"";
169					if ($user_permissions != null && in_array($db_permission['id'], $user_permissions)) {
170						echo " checked";
171					}		
172					echo "><label class=\"form-check-label\" for=" . $db_permission['name'] . ">" . $db_permission['name'] . "</label>" .
173					"</div>";
174				}
175			?>
176			<button type="submit" class="btn btn-primary" name="submit">Alter user</button>
177		</form>
178		<?php echo $msg;?>
179	</div>
180</body>
181</html>