public function session($name, $normalize = null, $default = null) { if ($this->hasSession($name)) { if ($normalize != null) { return Normalizer::normalize($this->session[$name], $normalize); } return $this->session[$name]; } return $default; }
/** * @Get * @Route("lecture/{id:int}/show") */ public function lecture() : LectureViewModel { $id = $this->input->get(1); $this->db->prepare("SELECT\r\n c.id as id, c.name as name, c.description as description, c.start_time as startTime, c.end_time as endTime, u.username as speaker, h.name as hall, conf.name as conference\r\n FROM lecture c\r\n JOIN users u\r\n ON u.id = c.speaker_id\r\n JOIN conference conf\r\n ON conf.id = c.conference_id\r\n JOIN hall h\r\n ON h.id = c.hall_id\r\n WHERE c.id = ?", array($id)); $response = $this->db->execute()->fetchRowAssoc(); if (!$response) { throw new \Exception("No lecture with id '{$id}'!", 404); } $lecture = new LectureViewModel(Normalizer::normalize($response['id'], 'noescape|int'), $response['name'], $response['description'], $response['startTime'], $response['endTime'], $response['speaker'], $response['conference'], $response['hall']); $lectures[] = $lecture; $this->view->appendToLayout('header', 'header'); $this->view->appendToLayout('meta', 'meta'); $this->view->appendToLayout('body', $lecture); $this->view->appendToLayout('footer', 'footer'); $this->view->displayLayout('Layouts.lecture'); return $lecture; }
public static function isAdmin() : bool { $statement = self::$database->prepare("SELECT u.id\n FROM user_roles ur\n JOIN users u\n ON u.id = ur.user_id\n WHERE (u.username = ? AND u.id = ?) AND ur.role_id = 2"); $statement->bindParam(1, App::getInstance()->getSession()->_username); $statement->bindParam(2, App::getInstance()->getSession()->_login); $statement->execute(); $response = $statement->fetch(\PDO::FETCH_ASSOC); if ($response) { $id = Normalizer::normalize($response['isAdmin'], 'bool'); return true; } return false; }
/** * @Route("users/all/{start:int}/{end:int}") * @Get */ public function allUsers() : AllUsersViewModel { $skip = $this->input->get(2); $take = $this->input->get(3) - $skip; $this->db->prepare("SELECT\n username, email\n FROM users\n ORDER BY username\n LIMIT {$take}\n OFFSET {$skip}"); $response = $this->db->execute()->fetchAllAssoc(); $users = array(); foreach ($response as $u) { $users[] = new User($u['username'], Normalizer::normalize($u['email'], 'noescape|bool')); } $allUsersViewModel = new AllUsersViewModel($users, $skip, $take + $skip); $this->view->appendToLayout('header', 'header'); $this->view->appendToLayout('meta', 'meta'); $this->view->appendToLayout('body', $allUsersViewModel); $this->view->appendToLayout('footer', 'footer'); $this->view->displayLayout('Layouts.home'); return $allUsersViewModel; }
/** * @Post * @param AddAdminBindingModel $model * @Route("conference/addAdmin/{id:int}") */ public function addAdmin(AddAdminBindingModel $model) { $confId = $this->input->get(2); $username = $model->getName(); $this->db->prepare("SELECT u.id as id\r\n FROM users u\r\n WHERE u.username = ?", array($username)); $response = $this->db->execute()->fetchRowAssoc(); $userId = Normalizer::normalize($response['id'], 'noescape|int'); $this->db->prepare("INSERT INTO conference_admins (conference_id, admin_id)\r\n VALUES (?, ?)", array($confId, $userId)); $this->db->execute(); $this->redirect("/conference/manageAdmins/{$confId}"); }