Advertisement
Guest User

Users

a guest
Sep 11th, 2017
166
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 5.79 KB | None | 0 0
  1. <?php
  2.     require_once '../core/init.php';
  3.     if(!is_logged_in()){
  4.         login_error_redirect();
  5.     }
  6.     if(!has_permission('admin')){
  7.         permission_error_redirect('index.php');
  8.     }
  9.     include 'includes/head.php';
  10.     include 'includes/navigation.php';
  11.    
  12.  
  13.    
  14.     if(isset($_GET['delete'])){
  15.         $delete_id = sanitize($_GET['delete']);
  16.         $db->query("DELETE FROM users WHERE id = '$delete_id'");
  17.         $_SESSION['success_flash'] = 'User has been deleted.';
  18.         header('Location: users.php');
  19.     }
  20.    
  21.     if(isset($_GET['add']) || isset($_GET['edit'])){
  22.         $name = ((isset($_POST['name']))? sanitize($_POST['name']) : '');
  23.         $email = ((isset($_POST['email']))? sanitize($_POST['email']) : '');
  24.         $password = ((isset($_POST['password']))? sanitize($_POST['password']) : '');
  25.         $confirm = ((isset($_POST['confirm']))? sanitize($_POST['confirm']) : '');
  26.         $permissions = ((isset($_POST['permissions']))? sanitize($_POST['permissions']) : '');
  27.         $errors = array();
  28.        
  29.         if(isset($_GET['edit'])){
  30.             $useredit_id = (int)$_GET['edit'];
  31.             $useredit_id = sanitize($useredit_id
  32.             );
  33.             $userResults = $db->query("SELECT * FROM users WHERE id = '$useredit_id'");
  34.             $user = mysqli_fetch_assoc($userResults);
  35.            
  36.            
  37.         }          
  38.            
  39.         if($_POST){
  40.         $emailQuery = $db->query("SELECT * FROM users WHERE email = '$email'");
  41.         $emailCount = mysqli_num_rows($emailQuery);
  42.        
  43.         if($emailCount !=0){
  44.             $errors[] = 'That email already exists in our database';
  45.         }
  46.            
  47.         $required = array('name', 'email', 'password', 'permissions');
  48.         foreach($required as $f){
  49.            
  50.             if(empty($_POST[$f])){
  51.                 $errors[]='You must fill out all fields';
  52.                 break;
  53.             }
  54.             }
  55.             if(strlen($password)< 6){
  56.                 $errors[]='Your password must be at least 6 characters';
  57.             }
  58.             if($password != $confirm){
  59.                 $errors[] = 'Your passwords do not match';
  60.                 }
  61.             if(!filter_var($email, FILTER_VALIDATE_EMAIL)){
  62.                 $errors[] = 'You must enter a valid email';
  63.             }
  64.             if(!empty($errors)){
  65.                 echo display_errors($errors);
  66.                 }else{
  67.                     //add user to db
  68.                     $hashed = password_hash($password, PASSWORD_DEFAULT);
  69.                     $insertSql = "INSERT INTO users(`full_name`, `email`, `password`, `permissions`)
  70.                                             VALUES ('$name', '$email', '$hashed', '$permissions')";
  71.                     if(isset($_GET['edit'])){
  72.                     $insertSql = "UPDATE users SET full_name='$name', email='$email', password='$password',
  73.                     'permissions' = '$permissions' WHERE id = '$useredit_id'";
  74.                     }
  75.                     $db->query($insertSql);
  76.                     $_SESSION['success_flash'] = 'User has been added!';
  77.                     header('Location: users.php');
  78.                    
  79.                                            
  80.             }
  81.         }
  82.        
  83.        
  84.     ?>
  85.         <br>
  86.         <h2 class="text-center"><?=((isset($_GET['edit']))? 'Edit ' : 'Add a new ');?>user</h2><hr>
  87.         <form action="users.php?<?= ((isset($_GET['edit']))? 'edit='.$useredit_id : 'add=1');?>" method="POST">
  88.             <div class="form-group col-md-6">
  89.                 <label for="name">Full name:</label>
  90.                 <input type="text" id ="name" name="name" class="form-control" value="<?=((isset($_GET['edit']))? $user['full_name'] : $name);?>">
  91.             </div>
  92.            
  93.             <div class="form-group col-md-6">
  94.                 <label for="email">Email:</label>
  95.                 <input type="email" id ="email" name="email" class="form-control" value="<?=((isset($_GET['edit']))? $user['email'] : $email);?>">
  96.             </div>
  97.            
  98.             <div class="form-group col-md-6">
  99.                 <label for="password">Password:</label>
  100.                 <input type="password" id ="password" name="password" class="form-control" value="<?=((isset($_GET['edit']))? $user['password'] : $password); ?>">
  101.             </div>
  102.            
  103.             <div class="form-group col-md-6">
  104.                 <label for="confirm">Confirm password:</label>
  105.                 <input type="password" id ="confirm" name="confirm" class="form-control" value="<?=((isset($_GET['edit']))? $user['password'] : $password); ?>">
  106.             </div>
  107.            
  108.             <div class="form-group col-md-6">
  109.                 <label for="name">Permissions:</label>
  110.                 <select class="form-control" name="permissions">
  111.                     <option value=""<?=(($permissions == '')? 'selected' : '');?>></option>
  112.                     <option value="editor"<?=(($permissions == '')? 'selected' : '');?>>Editor</option>
  113.                     <option value=""<?=(($permissions == 'admin,editor')? 'selected' : '');?>>Admin</option>
  114.                 </select>
  115.             </div>
  116.             <div class="form-group col-md-6 text-right" style="margin-top:25px;">
  117.             <a href="users.php" class="btn btn-default">Cancel</a>
  118.             <input type="submit" value="<?=((isset($_GET['edit']))? 'Edit ' : 'Add ');?> user" class="btn btn-primary">
  119.             </div>
  120.         </form>
  121.     <?php
  122.        
  123.     }else{
  124.    
  125.     $userQuery = $db->query("SELECT * FROM users ORDER BY full_name");
  126. ?>
  127.  
  128. <br><h2 class="text-center">Users</h2><br>
  129. <a href="users.php?<?= ((isset($_GET['edit']))? 'edit='.$useredit_id : 'add=1');?>" class="btn btn-success pull-right" id="add-product-btn">Add new user</a>
  130. <hr>
  131. <table class="table table-bordered table-striped table-condensed">
  132.     <thead>
  133.         <th></th>
  134.         <th>Name</th>
  135.         <th>Email</th>
  136.         <th>Join date</th>
  137.         <th>Last login</th>
  138.         <th>Permisions</th>
  139.     </thead>       
  140.         <tbody>
  141.         <?php
  142.             while($user = mysqli_fetch_assoc($userQuery)):
  143.         ?>
  144.             <tr>
  145.                 <td>
  146.                     <?php
  147.                         if($user['id'] != $user_data['id']):
  148.                     ?> 
  149.                         <a href="users.php?edit=<?=$user['id'];?>" class="btn btn-default btn-xs"><span class="glyphicon glyphicon-pencil"></span></a>
  150.                        
  151.                         <a href="users.php?delete=<?=$user['id'];?>" class="btn btn-default btn-xs"><span class="glyphicon glyphicon-remove-sign"></span></a>
  152.                    
  153.                     <?php
  154.                         endif;
  155.                     ?>
  156.                    
  157.                 </td>
  158.                 <td><?= $user['full_name']; ?></td>
  159.                 <td><?= $user['email']; ?></td>
  160.                 <td><?=pretty_date($user['join_date']);?></td>
  161.                 <td><?=(($user['last_login'] == '0000-00-00 00:00:00')?'Never' : pretty_date($user['last_login']));?></td>
  162.                 <td><?= $user['permissions']; ?></td>
  163.             </tr>
  164.         <?php
  165.             endwhile;
  166.         ?>
  167.         </tbody>
  168.     </table>
  169.  
  170. <?php
  171.     }
  172. include 'includes/footer.php';
  173. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement