hanze/iwa-panda2

routing/user.php in main
Repositories | Summary | Log | Files | README.md

user.php (4583B) download


  1<?php
  2$user_get = function (&$vars) {
  3    global $db;
  4    $user = $db->get(Model\User::class);
  5    $permissions = $db->get(Model\Permission::class);
  6    $permission_user = $db->get(Model\PermissionUser::class);
  7    $vars += get_vars($user, "/user", "/user/search", "", "email", [], $permissions->get_checkboxes(), $permission_user);
  8    return "views/user.html";
  9};
 10
 11$user_post = function (&$vars) {
 12    global $db;
 13    $user = $db->get(Model\User::class);
 14    $permissions = $db->get(Model\Permission::class);
 15    $permission_user = $db->get(Model\PermissionUser::class);
 16
 17    if(isset($_POST["form_type"])) {
 18        if($_POST["form_type"] == 'Add') {
 19            if($user->add_user() && $permission_user->add_permissions($user)) {
 20                $vars["response"] = 'succesfully added: ' . $_POST["email"];
 21            }
 22        } elseif($_POST["form_type"] == 'Update') {
 23            if($user->update_user() && $permission_user->update_permissions($user)) {
 24                $vars["response"] = 'succesfully updated: ' . $_POST["email"];
 25            } else {
 26                echo"something went wrong";
 27            }
 28        }
 29    }
 30    $vars += get_vars($user, "/user", "/user/search", "", "email", [], $permissions->get_checkboxes(), $permission_user);
 31    return "views/user.html";
 32};
 33
 34$user_query = function (&$vars) {
 35    global $db;
 36    $user = $db->get(Model\User::class);
 37    $permissions = $db->get(Model\Permission::class);
 38    $permission_user = $db->get(Model\PermissionUser::class);
 39    $query = '%' . $vars['search_query'] . '%';
 40    $vars += get_vars($user, "/user", "/user/search", $query, "email", [], $permissions->get_checkboxes(), $permission_user);
 41    return "views/user.html";
 42};
 43
 44$user_search = function (&$vars) {
 45    if(isset($_POST['search'])) {
 46        if($_POST['search'] == "") {
 47            $search = "%";
 48        } else {
 49            $search = $_POST['search'];
 50        }
 51        $header = '/user/search/' . $search;
 52        header('Location: ' . $header);
 53    } else {
 54        echo "wtF?";
 55        var_dump($_POST);
 56    }
 57};
 58
 59$user_edit = function (&$vars) {
 60    global $db;
 61    $user = $db->get(Model\User::class);
 62    $permissions = $db->get(Model\Permission::class);
 63    $permission_user = $db->get(Model\PermissionUser::class);
 64    $templates = new controller\templates($db, $user);
 65    $data = [];
 66    $user->load($vars["primary_key"]);
 67    foreach($user->getData() as $key => $col) {
 68        $data[$key] = $col;
 69    }
 70    $vars += get_vars($user, "/user", "/user/search", "", "email", $data, $permissions->get_checkboxes(), $permission_user);
 71    return "views/user.html";
 72};
 73
 74$user_delete = function (&$vars) {
 75    global $db;
 76    $user = $db->get(Model\User::class);
 77    $permissions = $db->get(Model\Permission::class);
 78
 79    $permission_user = $db->get(Model\PermissionUser::class);
 80    $user->load($vars["primary_key"]);
 81    $user->delete();
 82    $vars += get_vars($user, "/user", "/user/search", "", "email", $permissions->get_checkboxes(), [], $permission_user);
 83    return "views/user.html";
 84};
 85
 86$user_page = function (&$vars) {
 87    global $db;
 88    $user = $db->get(Model\User::class);
 89    $exam = $db->get(Model\Exam::class);
 90    $user->load($vars['primary_key']);
 91    $data = $user->getData();
 92    if(in_array(3, $_SESSION['user_permissions'])) {
 93        foreach($data as $key => $d) {
 94            $vars['user_data'] .= "<p>your $key = $d<p><br>";
 95        }
 96    } elseif($vars['primary_key'] == $_SESSION['email']) {
 97        foreach($data as $key => $d) {
 98            $vars['user_data'] .= "<p>your $key = $d<p><br>";
 99        }
100        $vars['user_data'] .= "<h1>your grades</h1><br>";
101        foreach($db->all_where(Model\Grade::class, ['email' => $vars['primary_key']]) as $grade) {
102            $exam->load($grade->exam);
103            $exam_name =$exam->name;
104            $vars['user_data'] .= "<p>your grade for $exam_name = $grade->grade </p><br>";
105        }
106    }
107    return "views/user_page.html";
108};
109function get_vars(Lollipop\DatabaseObject $table, string $action, string $search_action, string $search_string, string $search_key, array $form_data = [], array $extra = [], Model\PermissionUser $permissionUser = null): array
110{
111    global $db;
112    $templates = new Controller\Templates($db, $table);
113
114    $array = [];
115    $array["form"] = $templates->form_v2($action, $form_data, $extra);
116    $array["search"] = $templates->search_form($search_action);
117    $array["table"] = $templates->crud_table($action, $search_string, $search_key, $permissionUser);
118    $array['first_name'] = $_SESSION['first_name'];
119    return $array;
120}